Before I start reinventing a squared wheel, I have the following question:
Is there already a (standard) module that wraps around the various
os/sys information which checks if the platform + version is supported
for what I want to do with it.
For example I am currently looking at making a wrapper around sysctl,
for Freebsd only (2.2 onwards perhaps later I add Linux if I feel up to it.
So yes of course I can do a os.uname() but it struck me that there must
be a better way. *
If you think I made a thought error along the line and there is a better
solution, please do tell me too :-)
Thanks,
--
mph
* Something like:
test = RequirePlatform(do_not_raise=True)
test.require(platform='freebsd', version_min='2.2')
# If the platform is anything else but FreeBSD 2.2+
# raise an EnvironmentError. Otherwise, store the
# result of the test (True/False).
# Result of the require (and any additional tests
# can be accessed using the index operators
if test[0]:
print('supported')
> Before I start reinventing a squared wheel, I have the following
> question:
> Is there already a (standard) module that wraps around the various
> os/sys information which checks if the platform + version is supported
> for what I want to do with it.
In case you were not aware of it: see the platform module. But you'll have
to do the checks yourself (based on the info it returns).
--
Gabriel Genellina
As Python features are luckily mostly platform independent, I am not
sure if a convenient 'platform requirement check' module would be worth
the energy creating it, any thoughts on that?
For clarity purpose I re'added (and adapted) in what lines I was thinking:
-
test = RequirePlatform(do_not_raise=True)
# If do_not_raise is not set or False, an error will be raised
# after a failed require line, otherwise just continue.
test.require(key='test1', platform='freebsd', version_min='2.2')
# If the platform is anything else but FreeBSD 2.2 onwards return False
# and store the result of the test.
# Result of the require (and any additional tests
# can be accessed using the index operators;
if test['test1']:
print('supported')
-
Other requirements like architecture, python vm type/version, cpu
features, etc. Might also be nice to have.
--
mph