Shared code and tools for various RADICAL Projects (http://radical.rutgers.edu/)
Project description
Package radical.utils
=====================
This Python package contains shared code and tools for various
[Radical Group](http://radical.rutgers.edu) projects. Sometimes we call it the
Radical Kitchen Sink.
The radical.utils package contains the following things:
* A [URL class](https://github.com/saga-project/radical.utils/blob/master/radical/utils/url.py) (A SAGA-compliant url parser class)
* A [Plugin manager](https://github.com/saga-project/radical.utils/blob/master/radical/utils/plugin_manager.py) (A simple yet flexible plugin manager and loader)
* A [Config parser](https://github.com/saga-project/radical.utils/tree/master/radical/utils/config) (Config file reader writeer parser)
* A [Logger](https://github.com/saga-project/radical.utils/tree/master/radical/utils/logger) (Support for color log output and tracing)
* An [Object cache](https://github.com/saga-project/radical.utils/blob/master/radical/utils/object_cache.py) (Well, an object cache)
* A [Type checking module](https://github.com/saga-project/radical.utils/blob/master/radical/utils/signatures.py) (Type checking for python call signatures)
* A [Singleton metaclass](https://github.com/saga-project/radical.utils/blob/master/radical/utils/singleton.py) (Implements the Sigleton pattern)
* A [Thread wrapper](https://github.com/saga-project/radical.utils/blob/master/radical/utils/threads.py) (A thin convenience wrapper around threading.Thread)
* A [Call tracer](https://github.com/saga-project/radical.utils/blob/master/radical/utils/tracer.py) (Support for call tracing / debugging)
* A ['which' function](https://github.com/saga-project/radical.utils/blob/master/radical/utils/which.py)(Simliar to the 'which' command line tool)
The package should in general be compatible with Python 2.6.
License
-------
This software is released under the
[MIT License](http://opensource.org/licenses/MIT).
Parts of the module (radical.utils.atfork) are licensed under the [Apache-v2.0
license](http://www.apache.org/licenses/).
Installation
------------
You can install the latest radical.utils directly from [PyPi](https://pypi-hypernode.com/pypi/radical.utils/):
pip install --upgrade radical.utils
You can also install the latest development version (which might be broken)
from GitHub directly:
pip install -e git://github.com/saga-project/radical.utils.git#egg=radical.utils
If you want to use radical.utils in your own project, include it in your
`setup.py` file:
'install_requires': ['radical.utils']
Documentation
-------------
You can generate the documentation yourself with [Sphinx](http://sphinx-doc.org/)
pip install sphinx
make docs
The resulting documentation will be in `open docs/build/html/index.html`.
- For a list of bug fixes, see
https://github.com/radical-cybertools/radical.utils/issues?q=is%3Aissue+is%3Aclosed+sort%3Aupdated-desc
- For a list of open issues and known problems, see
https://github.com/radical-cybertools/radical.utils/issues?q=is%3Aissue+is%3Aopen+
Version 0.44 release 2016-11-01
--------------------------------------------------------------------------------
- remote debugging!
- SIGINT is nono in threads
- comment on exception types in raise_in_thread
- add range matching alg
- add condition watcher
- add some tracing methods
- add get_thread_name and get_thread_id
- add raise_in_thread
- add netifaces dep
- hardcode the netiface version until it is fixed upstream.
- allow to overwrite profiler name
- fix double releases
- convert atfork monkeypatch exception into warning
- make singleton fork-safe
- move get_hostip and get_hostname to ru
- move profiler from RP to RU
- move raise_on functionality from rpu to ru, to support random
error triggers for stress testing
- make raise_on thread save, get limits from env
Version 0.41.1 release 2016-06-02
--------------------------------------------------------------------------------
- add fs barrier to debug helper
- add get_traceback
- clean up counter management
- fix a log handler
- fix path creation for logfile output
- Fix regression on query split.
- fix thread inspection problem
- include atfork in RU
- keep doc in sync with implementation
- log version info is now optional
- make sig checking conditional
- make sure log level is string before calling "upper()"
- fix split_module
- monkeypatch python's logging module
Version 0.40 release 2016-02-03
--------------------------------------------------------------------------------
- add an algorithm to create balanced partitions of a space
- add ssl support to mongodb_connect
- allow fragment parsing in Url class
- allow reporter and debug log to coexist if log target is set.
- fix default for get in dict mixin
- fix type conversion for int, float configurables from env vars
- implement reset_id_counters
Version 0.38 release 2015-11-06
--------------------------------------------------------------------------------
- support install on anaconda
Version 0.37 release 2015-10-15
--------------------------------------------------------------------------------
- fix reporter log level
- several changes to reporter class
- align reporter, logger, and logreporter
Version 0.36 release 2015-10-08
--------------------------------------------------------------------------------
- clean up logging (getLogger -> get_logger)
- log pid and tid on log creation
- fix type conversion on some config data types
- make uid generation independent if getpwuid
- fix log message for warning about log level
- add boolean test for url
- add SAGA_VERBOSE backport
- fix some more import shadowing
- fix layer violation: make logs look nice in RP, finally
- do not use signals in threads...
- rename and install version tool.
- fix the debug helper
Version 0.35 release 2015-08-27
--------------------------------------------------------------------------------
- small bugfix release
Version 0.29 release 2015-07-13
--------------------------------------------------------------------------------
- attempt to avoid sdist naming error during pypi installation
- add uuid support, avoid counter reset on reboot
- add two convenience methods which support range finding
- have multiple threads lease from same pool. Speed up LM test
- make sure that the pull is filled during lease manager testing
- make sure json is exported as encoded unicode
- make sure we write encoded strings for json
- add test for LeaseManager
Version 0.28 release 2015-04-16
--------------------------------------------------------------------------------
- minimize an unlock/release race
- resilience against missing git in setup.py
- cleaner version string
- sync setup.py with recent changes in RP
- export range collapsing algorithm
- fix documentation
- fix reporting of type checks when multiple types are valid and optional; fix URL init sig
- fix url tests
- install sdist, export sdist location
- tool rename
- add version tool
Version 0.8 release 2015-02-24
--------------------------------------------------------------------------------
- Preserve case for "hostnames" in GO URIs.
- Allow # in host part of Globus Online URIs.
- preserve trailing slashes on URL paths
- move sources into src/
- fix version strings. again.
- fix id counters to start from 0
- fix comment parsing fix in second json read
Version 0.7.11 release 2014-12-11
--------------------------------------------------------------------------------
- fixed botched merge from devel
Version 0.7.10 release 2014-12-11
--------------------------------------------------------------------------------
- fixed lease manager debug output
Version 0.7.9 release 2014-12-02
--------------------------------------------------------------------------------
- fix to json comment parsing
- att flexible pylint util
- support append / overwrite mode for log targets
- add daemonize class
- fix leaking logs
- reduce lease manager logging noise
- log python version on startup
- add reporter class for nice demo output etc
- add namespace for object_cache, backward compatible
- fix bson/json/timestamp mangling
- json support for json writing
Version 0.7.8 release 2014-10-29
--------------------------------------------------------------------------------
- implemented lease manager (manage finite set of resources with
finite lifetime over multiple threads)
- implemented DebugHelper class (prints stack traces for all threads
on SIGUSR1
- implement decorator for class method timings
- cache configuration settings on logger creation, which
significantly speeds up logging over different log objects
- remove deepcopy from configuration management (improves
performance)
- add wildcard expanstion on dict_merge
- make pymongo and nose dependencies optional
Version 0.7.7 release 2014-08-27
--------------------------------------------------------------------------------
- lease manager which handles resource leases (like, leases ssh connections to saga adaptors)
- fixes on deepcopy, logging and config handling
Version 0.7.5 release 2014-07-22
--------------------------------------------------------------------------------
- Some small bug fixes.
--------------------------------------------------------------------------------
=====================
This Python package contains shared code and tools for various
[Radical Group](http://radical.rutgers.edu) projects. Sometimes we call it the
Radical Kitchen Sink.
The radical.utils package contains the following things:
* A [URL class](https://github.com/saga-project/radical.utils/blob/master/radical/utils/url.py) (A SAGA-compliant url parser class)
* A [Plugin manager](https://github.com/saga-project/radical.utils/blob/master/radical/utils/plugin_manager.py) (A simple yet flexible plugin manager and loader)
* A [Config parser](https://github.com/saga-project/radical.utils/tree/master/radical/utils/config) (Config file reader writeer parser)
* A [Logger](https://github.com/saga-project/radical.utils/tree/master/radical/utils/logger) (Support for color log output and tracing)
* An [Object cache](https://github.com/saga-project/radical.utils/blob/master/radical/utils/object_cache.py) (Well, an object cache)
* A [Type checking module](https://github.com/saga-project/radical.utils/blob/master/radical/utils/signatures.py) (Type checking for python call signatures)
* A [Singleton metaclass](https://github.com/saga-project/radical.utils/blob/master/radical/utils/singleton.py) (Implements the Sigleton pattern)
* A [Thread wrapper](https://github.com/saga-project/radical.utils/blob/master/radical/utils/threads.py) (A thin convenience wrapper around threading.Thread)
* A [Call tracer](https://github.com/saga-project/radical.utils/blob/master/radical/utils/tracer.py) (Support for call tracing / debugging)
* A ['which' function](https://github.com/saga-project/radical.utils/blob/master/radical/utils/which.py)(Simliar to the 'which' command line tool)
The package should in general be compatible with Python 2.6.
License
-------
This software is released under the
[MIT License](http://opensource.org/licenses/MIT).
Parts of the module (radical.utils.atfork) are licensed under the [Apache-v2.0
license](http://www.apache.org/licenses/).
Installation
------------
You can install the latest radical.utils directly from [PyPi](https://pypi-hypernode.com/pypi/radical.utils/):
pip install --upgrade radical.utils
You can also install the latest development version (which might be broken)
from GitHub directly:
pip install -e git://github.com/saga-project/radical.utils.git#egg=radical.utils
If you want to use radical.utils in your own project, include it in your
`setup.py` file:
'install_requires': ['radical.utils']
Documentation
-------------
You can generate the documentation yourself with [Sphinx](http://sphinx-doc.org/)
pip install sphinx
make docs
The resulting documentation will be in `open docs/build/html/index.html`.
- For a list of bug fixes, see
https://github.com/radical-cybertools/radical.utils/issues?q=is%3Aissue+is%3Aclosed+sort%3Aupdated-desc
- For a list of open issues and known problems, see
https://github.com/radical-cybertools/radical.utils/issues?q=is%3Aissue+is%3Aopen+
Version 0.44 release 2016-11-01
--------------------------------------------------------------------------------
- remote debugging!
- SIGINT is nono in threads
- comment on exception types in raise_in_thread
- add range matching alg
- add condition watcher
- add some tracing methods
- add get_thread_name and get_thread_id
- add raise_in_thread
- add netifaces dep
- hardcode the netiface version until it is fixed upstream.
- allow to overwrite profiler name
- fix double releases
- convert atfork monkeypatch exception into warning
- make singleton fork-safe
- move get_hostip and get_hostname to ru
- move profiler from RP to RU
- move raise_on functionality from rpu to ru, to support random
error triggers for stress testing
- make raise_on thread save, get limits from env
Version 0.41.1 release 2016-06-02
--------------------------------------------------------------------------------
- add fs barrier to debug helper
- add get_traceback
- clean up counter management
- fix a log handler
- fix path creation for logfile output
- Fix regression on query split.
- fix thread inspection problem
- include atfork in RU
- keep doc in sync with implementation
- log version info is now optional
- make sig checking conditional
- make sure log level is string before calling "upper()"
- fix split_module
- monkeypatch python's logging module
Version 0.40 release 2016-02-03
--------------------------------------------------------------------------------
- add an algorithm to create balanced partitions of a space
- add ssl support to mongodb_connect
- allow fragment parsing in Url class
- allow reporter and debug log to coexist if log target is set.
- fix default for get in dict mixin
- fix type conversion for int, float configurables from env vars
- implement reset_id_counters
Version 0.38 release 2015-11-06
--------------------------------------------------------------------------------
- support install on anaconda
Version 0.37 release 2015-10-15
--------------------------------------------------------------------------------
- fix reporter log level
- several changes to reporter class
- align reporter, logger, and logreporter
Version 0.36 release 2015-10-08
--------------------------------------------------------------------------------
- clean up logging (getLogger -> get_logger)
- log pid and tid on log creation
- fix type conversion on some config data types
- make uid generation independent if getpwuid
- fix log message for warning about log level
- add boolean test for url
- add SAGA_VERBOSE backport
- fix some more import shadowing
- fix layer violation: make logs look nice in RP, finally
- do not use signals in threads...
- rename and install version tool.
- fix the debug helper
Version 0.35 release 2015-08-27
--------------------------------------------------------------------------------
- small bugfix release
Version 0.29 release 2015-07-13
--------------------------------------------------------------------------------
- attempt to avoid sdist naming error during pypi installation
- add uuid support, avoid counter reset on reboot
- add two convenience methods which support range finding
- have multiple threads lease from same pool. Speed up LM test
- make sure that the pull is filled during lease manager testing
- make sure json is exported as encoded unicode
- make sure we write encoded strings for json
- add test for LeaseManager
Version 0.28 release 2015-04-16
--------------------------------------------------------------------------------
- minimize an unlock/release race
- resilience against missing git in setup.py
- cleaner version string
- sync setup.py with recent changes in RP
- export range collapsing algorithm
- fix documentation
- fix reporting of type checks when multiple types are valid and optional; fix URL init sig
- fix url tests
- install sdist, export sdist location
- tool rename
- add version tool
Version 0.8 release 2015-02-24
--------------------------------------------------------------------------------
- Preserve case for "hostnames" in GO URIs.
- Allow # in host part of Globus Online URIs.
- preserve trailing slashes on URL paths
- move sources into src/
- fix version strings. again.
- fix id counters to start from 0
- fix comment parsing fix in second json read
Version 0.7.11 release 2014-12-11
--------------------------------------------------------------------------------
- fixed botched merge from devel
Version 0.7.10 release 2014-12-11
--------------------------------------------------------------------------------
- fixed lease manager debug output
Version 0.7.9 release 2014-12-02
--------------------------------------------------------------------------------
- fix to json comment parsing
- att flexible pylint util
- support append / overwrite mode for log targets
- add daemonize class
- fix leaking logs
- reduce lease manager logging noise
- log python version on startup
- add reporter class for nice demo output etc
- add namespace for object_cache, backward compatible
- fix bson/json/timestamp mangling
- json support for json writing
Version 0.7.8 release 2014-10-29
--------------------------------------------------------------------------------
- implemented lease manager (manage finite set of resources with
finite lifetime over multiple threads)
- implemented DebugHelper class (prints stack traces for all threads
on SIGUSR1
- implement decorator for class method timings
- cache configuration settings on logger creation, which
significantly speeds up logging over different log objects
- remove deepcopy from configuration management (improves
performance)
- add wildcard expanstion on dict_merge
- make pymongo and nose dependencies optional
Version 0.7.7 release 2014-08-27
--------------------------------------------------------------------------------
- lease manager which handles resource leases (like, leases ssh connections to saga adaptors)
- fixes on deepcopy, logging and config handling
Version 0.7.5 release 2014-07-22
--------------------------------------------------------------------------------
- Some small bug fixes.
--------------------------------------------------------------------------------
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
radical.utils-0.44.tar.gz
(203.7 kB
view details)
File details
Details for the file radical.utils-0.44.tar.gz
.
File metadata
- Download URL: radical.utils-0.44.tar.gz
- Upload date:
- Size: 203.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32ec7a9d87de057019e3ccd56b5f9a0d837aec5f5a9c5b47c9ce651e0647b224 |
|
MD5 | fc958596dc3ce5ab499ed91a99aaac8a |
|
BLAKE2b-256 | e7122b636379087701899b40758a66b1f98dcf6b7b0b251ef779661947d5c829 |