1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273
|
Changes in version 1.3.0
------------------------
* Fixed cleaning up observer weakref proxies after recent Singleton changes
* Return False instead of 0 from NullType.__nonzero__
* Made Null only compare equal with itself
* Removed obsolete application.python.util module
Changes in version 1.2.9
------------------------
* Renamed Singleton's internal attribute to make them less obtrusive
* Fixed detection for the class's __new__ in Singleton
* Added execute_once decorator
Changes in version 1.2.8
------------------------
* Reorganized the application.python package contents
* Added the limit function to restrict a numeric value to a given range
* Added function to recursively create directory and ignore error if exists
* Added classproperty descriptor for defining properties at the class level
* Removed obsolete default_host_ip attribute from application.system
* Improved Null to better act as a class substitute
Changes in version 1.2.7
------------------------
* Release EventQueue events immediately after processing
Changes in version 1.2.6
------------------------
* Use the system path separator when building the list of packages
* Fixed handling of unicode in the syslog logger
Changes in version 1.2.5
------------------------
* Fixed syslog on platforms that do not support it
* Added outgoing_ip_for method to host object
Changes in version 1.2.4
------------------------
* Added NullType in order to allow Null to be pickled
* Made NullType a singleton to prevent multiple instances when unpickling
Changes in version 1.2.3
------------------------
* Improved memory_dump's output using console size information
* Added support for detecting object cycles in application.debug.memory
Changes in version 1.2.2
------------------------
* Made Null from application.python.util an instance. See NEWS.
* Improved processing speed for post_notification.
Changes in version 1.2.1
------------------------
* Added the missing application.log package to the build
Changes in version 1.2.0
------------------------
* Depend on python2.5 or newer
* Modified Null not to return self for __setattr__ and __delattr__
* Added indexing support for the Null class
* Allow a Null object to be a descriptor
* Added __len__ method to the Null class
* Added iteration support for the Null class
* Added __contains__ method to the Null class
* Added context management support to the Null class
* Added discard_observer method to NotificationCenter
* Added comment to clarify behaviour
* Fixed threading issues with adding and removing observers
* Fixed handling of settings which contain uppercase characters and dashes
* Added support for weakly referencing observers in the notification system
* Added example of how to have a weakly referenced notification observer
* Removed deprecated functionality
* Added purge_observer method on NotificationCenter
* Added dynamic host properties to application.system
* Removed resolution test from Hostname configuration datatype
* Improved error message for invalid type in IPAddress
* Removed twisted logging backend and added a logging extension for twisted
* Improved logging functions and added some commonly used aliases
* Fixed initial setting of the current log level
Changes in version 1.1.5
------------------------
* Made a ConfigSection iterable as (name, value) pairs
* Modified ConfigSetting to allow any callable to be used as a validator
* Fixed __import__ statement to work with python older than 2.5
* Refactored ConfigSectionMeta to decouple it from ConfigSetting
* Save ConfigSetting's initial default values as cls.__defaults__
* Added __delattr__ on ConfigSectionMeta to prevent deletion of settings
* Added a mechanism to skip applying the type for a ConfigSetting
* Added set/reset capabilities to ConfigSection
* Enhanced ConfigFile.get_section with filtering and default return value
for missing section capabilities
* Reworded docstrings to fit in width on a standard terminal
* Allow ConfigSection.__configfile__ to be an instance of ConfigFile too
* Added read capabilities directly on ConfigSection classes
* Improved caching mechanism in ConfigFile
* Use ConfigSection's read capabilities instead of ConfigFile.read_settings
* Added support for specifying the configuration file type in ConfigSection
* Deprecated ConfigFile.read_settings and dump_settings
* Added local_config_directory property on Process
* Deprecated using __configfile__ in favor of __cfgfile__ on ConfigSection
* Added filename attribute to ConfigFile instances
* Added __str__ representation to ConfigSection
* Added tracing capabilities to ConfigSection
* Replaced dump_settings function body with printing the class
* Updated ConfigSection's docstring to describe the special attributes
* Rephrased exception message for clarity
* Modified data type converters to accept what they generate as input
* Updated examples to match the latest configuration API changes
Changes in version 1.1.4
------------------------
* Allow version numbers without the micro or minor number
* Added concept of undefined version that compares lower than any other
* Added missing entry about notification.py example
* Added dependency module and example
Changes in version 1.1.3
------------------------
* Added isdescriptor function to application.python.descriptor
* Fixed handling of special attributes in ConfigSection subclasses
* Fixed ConfigSection behaviour with multi-level inheritance
Changes in version 1.1.2
------------------------
* Deprecated config_directory in favor of system_config_directory
* No longer raise an expection when setting the system config directory,
if the directory doesn't exist
* Changed datatypes.Boolean into a validator
* Added ConfigSetting descriptor that is meant to deprecate the use of the
_datatypes mapping when declaring setting types inside a ConfigSection
* Deprecated ConfigFile.get_option in favor ConfigFile.get_setting
* Added support for specifying a config file and section in ConfigSection
* Fixed memory leak caused by ThreadLocal not releasing some internal data
* Added WriteOnceAttribute descriptor
* Added note about restrictions that apply when using the new descriptors
* Added version module
* Bumped debian standards version to 3.8.2
* Fixed lintian warning about missing misc:Depends dependency
* Modified examples to honor the latest changes in the API
Changes in version 1.1.1
------------------------
* By default show rate when measuring timing
* For better visibility log deprecation warning with log.warn
* Deprecated _defaultPort and _name in favor of default_port and name
* Use a better description for an endpoint address
* Define log levels ALL and NONE consistently with the others
* Added LogLevel configuration datatype
* Replaced deprecated startSyslog with start_syslog in examples
Changes in version 1.1.0
------------------------
* Allow process.runtime_file(None) and return None for it
* Switched from python-central to python-support
* Enhanced the Singleton metaclass to properly handle classes that take
arguments in __init__ and/or __new__
* Extended singleton example with classes that take arguments to __init__
* Added descriptor that allows objects to have thread specific attributes
* Added a new module that implements a notification system
* Added example script for notification system
* Do not indent subsequent lines in a multi line log in syslog
* Simplified logging of multilines in syslog
* Specify the priority when logging to syslog, based on the message type
* Implemented fallback log capabilities via the logging module
* Added prefix to debug log records with twisted backend
* Add prefix to log lines when logging to console with twisted backend
* Added log level support to application.log module
* Removed system identifier when logging to syslog in twisted backend
* Added start_syslog function and deprecated startSyslog variant
* Updated README with information about the new notification module
* Added NEWS file to document user visible changes between versions
* Updated debian description to include the new notification system
* Updated debian dependencies
* Bumped debian standards version
Changes in version 1.0.9
------------------------
* Better method to determine the default host IP address.
* Renamed host_ip to default_host_ip for clarity.
* Renamed application/util.py to application/system.py
Changes in version 1.0.8
------------------------
* Added LICENSE and ChangeLog.
* Rephrased some docstrings and descriptions.
* Added docstring to the Process class.
* Do not automatically import the timing module when the debug
module is imported.
* Made Process and Signals singletons.
* Updated util module description.
* Removed some obsolete commented code.
* Added some usage examples.
* Do not compress .py and .ini example files.
* Renamed mixed case functions in the configuration module to use
names with underscores for consistency.
* Renamed argument otype to type in the get_option function.
* Renamed thisHostIP to host_ip.
* Generalized configuration handling by adding the ConfigFile class.
With this multiple distinct configuration files can eb handled at the
same time and it makes it easier to specify the configuration file name
from the application than the less flexible module file name attribute.
* Removed configuration module functions which were made obsolete by the
addition of ConfigFile.
* Replaced _dataTypes attribute on ConfigSection with _datatypes.
Changes in version 1.0.7
------------------------
* In setup.py take the long description from README.
Changes in version 1.0.6
------------------------
* Added missing import in the queue module.
Changes in version 1.0.5
------------------------
* Added methods for controlling the event processing workflow
- pause/unpause/resume - to control event processing
- accept_events/ingore_events - to control event acceptance
- empty - to purge events already on the queue
* Allow unhandled events in a CumulativeEventQueue to be preserved.
* Capture unhandled exceptions from a queue's event handler.
* Fixed some docstrings and error messages in the queue module.
Changes in version 1.0.4
------------------------
* Added application.python.queue module.
Changes in version 1.0.3
------------------------
* Added usage example for the decorator module.
Changes in version 1.0.2
------------------------
* Added application.python submodule. It contains python related utilities
and helpers (currently it contains the decorator and util modules).
* Added decorator support in application.python.decorator.
* Moved the Singleton and Null classes from application.util to
application.python.util.
* Updated years in copyright info.
Changes in version 1.0.1
------------------------
* Fixed issue with printing the memory dump in multithreaded environments.
* Ignore one time collectable garbage generated before the memory debug
module is imported.
|