rsclib 0.65__py3-none-any.whl → 0.67__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rsclib/Version.py +1 -1
- rsclib/__init__.py +4 -1
- rsclib/execute.py +145 -143
- rsclib/hexdump.py +13 -3
- rsclib/iter_recipes.py +17 -0
- rsclib/{Rational.py → rational.py} +19 -10
- rsclib/stateparser.py +52 -52
- rsclib-0.67.dist-info/METADATA +706 -0
- {rsclib-0.65.dist-info → rsclib-0.67.dist-info}/RECORD +12 -12
- {rsclib-0.65.dist-info → rsclib-0.67.dist-info}/WHEEL +1 -1
- rsclib-0.65.dist-info/METADATA +0 -692
- {rsclib-0.65.dist-info → rsclib-0.67.dist-info}/entry_points.txt +0 -0
- {rsclib-0.65.dist-info → rsclib-0.67.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,706 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: rsclib
|
3
|
+
Version: 0.67
|
4
|
+
Summary: Misc. basic stuff needed by RSCs tools
|
5
|
+
Home-page: http://rsclib.sourceforge.net/
|
6
|
+
Download-URL: http://downloads.sourceforge.net/project/rsclib/rsclib/0.67/rsclib-0.67.tar.gz
|
7
|
+
Author: Ralf Schlatterbeck
|
8
|
+
Author-email: Ralf Schlatterbeck <rsc@runtux.com>
|
9
|
+
License: GNU Library or Lesser General Public License (LGPL)
|
10
|
+
Project-URL: Homepage, https://github.com/schlatterbeck/rsclib
|
11
|
+
Project-URL: Bug Tracker, https://github.com/schlatterbeck/rsclib/issues
|
12
|
+
Platform: Any
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
14
|
+
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
|
15
|
+
Classifier: Operating System :: OS Independent
|
16
|
+
Classifier: Programming Language :: Python
|
17
|
+
Classifier: Intended Audience :: Developers
|
18
|
+
Classifier: Programming Language :: Python :: 2
|
19
|
+
Classifier: Programming Language :: Python :: 2.7
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
21
|
+
Classifier: Programming Language :: Python :: 3.5
|
22
|
+
Classifier: Programming Language :: Python :: 3.6
|
23
|
+
Classifier: Programming Language :: Python :: 3.7
|
24
|
+
Classifier: Programming Language :: Python :: 3.8
|
25
|
+
Classifier: Programming Language :: Python :: 3.9
|
26
|
+
Classifier: Programming Language :: Python :: 3.10
|
27
|
+
Classifier: Programming Language :: Python :: 3.11
|
28
|
+
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4
|
29
|
+
Description-Content-Type: text/x-rst
|
30
|
+
|
31
|
+
rsclib: Utility Routines
|
32
|
+
========================
|
33
|
+
|
34
|
+
:Author: Ralf Schlatterbeck <rsc@runtux.com>
|
35
|
+
|
36
|
+
The library includes various utility modules used in other projects.
|
37
|
+
|
38
|
+
- ast_call: A simple call manager using asterisk: This can be used to
|
39
|
+
originate a call and log all event associated to that call. So you
|
40
|
+
can find out the status of the call and optionally the dialstatus.
|
41
|
+
- ast_cdr: parser for CDR records in asterisk. We currently use
|
42
|
+
text-files only, this might be later extended for database use.
|
43
|
+
- ast_probe: Methods for checking for running asterisk
|
44
|
+
- Autosuper magic (originally from Guido van Rossums announcement of
|
45
|
+
Python 2.2): For refactoring it's a good idea that each class knows
|
46
|
+
its parents (that the parent is not hardcoded in the upcall),
|
47
|
+
achieved by adding a the __super attribute. Use as, e.g.,
|
48
|
+
self.__super.method for calling method in the parent.
|
49
|
+
- base_pickler: Allow to specify a dictionary of pickle exceptions, if
|
50
|
+
the value in the dictionary is in __dict__ when pickle is called, the
|
51
|
+
value in __dict__ is replaced with the value in the exception
|
52
|
+
dictionary.
|
53
|
+
- bero: A configurator for the `bero*fos`_ failover switch. See my
|
54
|
+
`blogpost`_ why I wrote that (short summary: to work around bugs in
|
55
|
+
the firmware of the device which are not addressed by the
|
56
|
+
configurator code that comes with the device).
|
57
|
+
- Config_File for python-syntax configuration files used in several of
|
58
|
+
my projects.
|
59
|
+
- crm: Tools for the cluster resource manager of the pacemaker high
|
60
|
+
availability project. We allow querying of nodes, resources and
|
61
|
+
errors for resources as well as resetting errors and migration of
|
62
|
+
resources.
|
63
|
+
- execute: module for executing commands and handling IO, this also
|
64
|
+
has a Lock and a Log mixin. Now there is also a framework for
|
65
|
+
executing processes in a pipeline, there can be fork-points in the
|
66
|
+
pipeline where the output of one process feeds several pipelines.
|
67
|
+
See test_exec.py, test2_exec.py and test3_exec.py.
|
68
|
+
- grepmime: search for pattern in email attachments (even if these are
|
69
|
+
encoded)
|
70
|
+
- inductance: Inductance calculation of air-cored cylindrical
|
71
|
+
flat-winded coil according to Robert Weaver
|
72
|
+
http://electronbunker.ca/CalcMethods3b.html
|
73
|
+
- IP_Address: IP v4 and v6 Addresses with subnet masking
|
74
|
+
- iter_recipes: magic with iterators
|
75
|
+
With some backwards-compatible implementations of Python's itertools
|
76
|
+
for earlier Python versions.
|
77
|
+
- isdn: model the status of Asterisk ISDN lines, either Linux Call
|
78
|
+
Router (LCR) ISDN lines or lines managed by DAHDI. Special case for
|
79
|
+
Xorcom modules which provide more information using Xorcom-specific
|
80
|
+
files in /proc than native DAHDI modules.
|
81
|
+
- lc_resonator: Frequency calculation for L-C resonator
|
82
|
+
- Math implements Euclids algorithm for greatest common divisor and as
|
83
|
+
a by-product the least common multiple
|
84
|
+
- nmap: A parser for output of nmap scans to (e.g. to generate tables
|
85
|
+
in TeX)
|
86
|
+
- ocf: small framework for writing OCF scripts for the heartbeat
|
87
|
+
cluster resource manager (probably also usable for the newer version
|
88
|
+
called pacemaker but for now only tested with the version in Debian
|
89
|
+
stable aka lenny).
|
90
|
+
- PDF_Signature: experimental code for checking signatures on adobe PDF
|
91
|
+
documents
|
92
|
+
- Phone: Parse phone numbers (Austria-specific)
|
93
|
+
- PM_Value: Possibly missing value, encapsulate a number which may be
|
94
|
+
missing and associated arithmetics.
|
95
|
+
- pycompat: Utilities for running under different python versions
|
96
|
+
- Rational: Implementation of Rational numbers
|
97
|
+
- stateparser: Simple state-machine parser class, this is used for
|
98
|
+
writing line-based parsers using a state machine. For an example
|
99
|
+
usage see nmap. After parsing the result can be pickled but we lose
|
100
|
+
the ability to continue parsing after reading from the pickled
|
101
|
+
result.
|
102
|
+
- sqlparser: Parse SQL dumps from postgreSQL and mysql and optionally
|
103
|
+
create an new (e.g. anonymized) sql dump
|
104
|
+
- timeout: A simple timeout mechanism using SIGALRM
|
105
|
+
- Tex_CSV_Writer: Write CVS files in a syntax that can be parsed by
|
106
|
+
TeX. Implements same interface as the csv module. Only implements
|
107
|
+
writing.
|
108
|
+
- trafficshape: Simple traffic shaping configuration: Currently
|
109
|
+
generates Linux tc commands for a traffic shaping config using hfsc
|
110
|
+
for shaping and sfq or red for the leaf qdiscs. We also provide a
|
111
|
+
translator from iptables mangle rules (for traffic marking) to tc
|
112
|
+
commands for filtering. This is needed if we want to do inbound
|
113
|
+
shaping. The Linux kernel doesn't support inbound shaping, so we need
|
114
|
+
to redirect all traffic to an ifb device. On that device we do
|
115
|
+
*outbound* shaping. Unfortunately when sending traffic to an ifb
|
116
|
+
device with a tc filter + action mirred command this occurs *before*
|
117
|
+
the PREROUTING chain. This means packets are not yet marked. So we
|
118
|
+
provide a parser to translate mangle rules in the PREROUTING chain to
|
119
|
+
appropriate tc commands. For implementing this we mark packets (using
|
120
|
+
the tc action xt (formerly known as ipt used for iptables marking, a
|
121
|
+
backward-compatibility option can be used) in the original device and
|
122
|
+
then use the marked information in the ifb device to send the traffic
|
123
|
+
to appropriate qdiscs. This supports a two-level approach: Rules in
|
124
|
+
iptables that match on a packet mark (using --mark) are translated to
|
125
|
+
tc commands in the ifb device (they depend on the mark already
|
126
|
+
present). All other rules are translated to a tc action xt (using -j
|
127
|
+
MARK) and a tc action mirred redirect (for sending the traffic to the
|
128
|
+
ifb device) for the *original* device (e.g. eth0 redirecting to
|
129
|
+
ifb0). The PREROUTING commands by default are directly taken from the
|
130
|
+
running kernel by default (using "iptables -t mangle -S -v")
|
131
|
+
|
132
|
+
.. _`bero*fos`: https://shop.beronet.com/product_info.php/cPath/56/products_id/159
|
133
|
+
.. _`blogpost`: http://blog.runtux.com/2009/04/09/81/
|
134
|
+
|
135
|
+
Resources
|
136
|
+
---------
|
137
|
+
|
138
|
+
Download the source at https://sourceforge.net/projects/rsclib/
|
139
|
+
and install using the standard python setup, e.g.::
|
140
|
+
|
141
|
+
python setup.py install --prefix=/usr/local
|
142
|
+
|
143
|
+
Alternatively get it from pypi and/or install via pip.
|
144
|
+
|
145
|
+
|
146
|
+
Changes
|
147
|
+
-------
|
148
|
+
|
149
|
+
Version 0.67: Bugfixes in rational and iter_recipes.batched
|
150
|
+
|
151
|
+
- iter_recipes.batched now doesn't return an empty batch
|
152
|
+
- Rename Rational module to rational
|
153
|
+
- Fix division in rational module
|
154
|
+
|
155
|
+
Version 0.66: Hexdump parsing, iter_recipes.batched
|
156
|
+
|
157
|
+
- Add iter_recipes.batched which appears in Python 3.12
|
158
|
+
- Hexdump parsing is more tolerant now
|
159
|
+
- Some overlooked Python3 changes
|
160
|
+
|
161
|
+
Version 0.65: Use pyproject.toml
|
162
|
+
|
163
|
+
- Use new-style packaging with pyproject.toml, old-style setup.py is
|
164
|
+
still available
|
165
|
+
- Use console script entry points instead of explicit scripts in
|
166
|
+
directory bin
|
167
|
+
|
168
|
+
Version 0.64: Small execute.Log updates
|
169
|
+
|
170
|
+
- Add add_stderr_handler method to also log to stderr
|
171
|
+
|
172
|
+
Version 0.63: Python3 fixes
|
173
|
+
|
174
|
+
- Fix bytes_ord to also deal with a bytes object in python3
|
175
|
+
|
176
|
+
Version 0.62: Python3 fixes
|
177
|
+
|
178
|
+
- More Python3 fixes
|
179
|
+
- Update of stateparser
|
180
|
+
- hexdump/unhexdump
|
181
|
+
|
182
|
+
Version 0.61: sqlparser
|
183
|
+
|
184
|
+
- Allow filtering during reading of sql dump
|
185
|
+
|
186
|
+
Version 0.60: Python3 fixes
|
187
|
+
|
188
|
+
- hexdump
|
189
|
+
- xrange
|
190
|
+
- compatibility for bytes iterator
|
191
|
+
|
192
|
+
Version 0.59: sqlparser
|
193
|
+
|
194
|
+
- Support older postgresql versions, tested 9.6
|
195
|
+
|
196
|
+
Version 0.58: sqlparser
|
197
|
+
|
198
|
+
- Fix python3 string handling for sqlparser
|
199
|
+
- Small fix in stateparser
|
200
|
+
|
201
|
+
Version 0.57: isdn
|
202
|
+
|
203
|
+
- Add parsing of beronet GSM modules
|
204
|
+
- Support multiple bero devices with same numbering
|
205
|
+
|
206
|
+
Version 0.56: ast_call, isdn
|
207
|
+
|
208
|
+
- The ast_call now is brought to latest version of pyst and asterisk
|
209
|
+
- isdn module now supports remote isdn via isdn gateway
|
210
|
+
- various python3 fixes
|
211
|
+
|
212
|
+
Version 0.55: LOCKDIR
|
213
|
+
|
214
|
+
- Now it's possible to set the locking directory (default is still
|
215
|
+
/var/lock which is a symlink to /run/lock on modern systems) via
|
216
|
+
the environment variable LOCKDIR.
|
217
|
+
|
218
|
+
Version 0.54: inductance, sqlparser
|
219
|
+
|
220
|
+
- The sqlparser now can do round-tripping (some items are in
|
221
|
+
different order)
|
222
|
+
- More inductance formulae
|
223
|
+
|
224
|
+
Version 0.53: inductance, IPv4 address
|
225
|
+
|
226
|
+
- Bring inductance to metric units (output in F, input in m)
|
227
|
+
- Fix IPv4 address parsing when address contains less than 3 dots
|
228
|
+
|
229
|
+
Version 0.52: Small fixes
|
230
|
+
|
231
|
+
- Fix unicode problem in sqlparser
|
232
|
+
|
233
|
+
Version 0.51: Small fixes
|
234
|
+
|
235
|
+
- Fix IP addresses in boolean context
|
236
|
+
- Add supported python versions to setup.py
|
237
|
+
|
238
|
+
Version 0.50: Small additions
|
239
|
+
|
240
|
+
- Change Rational to no longer print mixed fractions by default
|
241
|
+
- Allow setting the locking filename for Lock_Mixin in execute
|
242
|
+
|
243
|
+
Version 0.49: Python3 compatibility
|
244
|
+
|
245
|
+
- Remove ETree, HTML_Parse, PDF_Parse, multipart_form: These are
|
246
|
+
better handled by libraries like BeautifulSoup or specific PDF
|
247
|
+
handling libs or the requests library
|
248
|
+
- Remove ldap_lib.py: This is now nicely supported by ldap3 which
|
249
|
+
also has a native iterator for paged search
|
250
|
+
- Remove Freshmeat.py: Freshmeat is more or less dead now and they
|
251
|
+
don't support an API-Test so it is very hard to get this right
|
252
|
+
- Put Firstname (with all the history) into its own package, note
|
253
|
+
that this needs more work to run against the latest version of the
|
254
|
+
website
|
255
|
+
- Lots of fixes for python3 compatibility: Where doctests existed
|
256
|
+
these pass now but there is still untested code and some code where
|
257
|
+
libaries are missing for python3 (pyst asterisk bindings and
|
258
|
+
openssl wrappers)
|
259
|
+
|
260
|
+
Version 0.48: Fixes for execute
|
261
|
+
|
262
|
+
- Now we really close all relevant ends of pipes in other processes
|
263
|
+
which avoids hangs
|
264
|
+
- Add logging to Process
|
265
|
+
|
266
|
+
Version 0.47: Fixes for IP_Address; pypi
|
267
|
+
|
268
|
+
- IP_Address: Relax inheritance checks when comparing IP_Address
|
269
|
+
instances
|
270
|
+
- Version uploaded to pypi and documented in README
|
271
|
+
|
272
|
+
Version 0.46: Additions to ast_probe; Bug-fix
|
273
|
+
|
274
|
+
- ast_probe now has methods for checking sip registry and reloading
|
275
|
+
the sip subsystem in asterisk
|
276
|
+
- Add a small script, ast_sip_check for checking sip registration on
|
277
|
+
an asterisk server and restart sip if some registrations are
|
278
|
+
missing.
|
279
|
+
- Config_File fixes the __getattr_ method to return an
|
280
|
+
AttributeError in case of failure
|
281
|
+
|
282
|
+
Version 0.45: Fix ISDN ports
|
283
|
+
|
284
|
+
String reprentation had leading unicode 'u'
|
285
|
+
|
286
|
+
- Fix string representation in ISDN ports
|
287
|
+
|
288
|
+
Version 0.44: Make line-waiting for bero configurable
|
289
|
+
|
290
|
+
For cluster resource berofos we make waiting for the L1 and L2 of the
|
291
|
+
ISDN line configurable. The hard-coded default was too low.
|
292
|
+
|
293
|
+
- New config-item ISDN_WAIT_UP
|
294
|
+
|
295
|
+
Version 0.43: Support new berofos firmware
|
296
|
+
|
297
|
+
The new berofos (failover switch) firmware has some new low-level
|
298
|
+
commands which we now accept when getting the device status.
|
299
|
+
|
300
|
+
- Fix bero.py to accept new low-level commands
|
301
|
+
- Add some more documentation to bero.py
|
302
|
+
- Add description of ast_probe in this README
|
303
|
+
|
304
|
+
Version 0.42: Feature enhancements
|
305
|
+
|
306
|
+
Add crm for pacemaker cluster management, new ast_probe for checking of
|
307
|
+
asterisk status. Fixes to ocf and ast_call.
|
308
|
+
|
309
|
+
- Add crm.py
|
310
|
+
- Add ast_probe.py
|
311
|
+
- Allow specification of parsed config (cfg) for Call_Manager in
|
312
|
+
ast_call.py
|
313
|
+
- Better resource monitoring for asterisk and dahdi in ocf.py
|
314
|
+
- fix ocf.py to use new classes in isdn.py
|
315
|
+
- isdn.py now doesn't probe asterisk for the isdn stack in use if it
|
316
|
+
finds a hint in the config-file
|
317
|
+
|
318
|
+
Version 0.41: Minor feature enhancements
|
319
|
+
|
320
|
+
Fixes to Freshmeat, pycompat, sql-dump parser.
|
321
|
+
|
322
|
+
- Fix parsing of escaped quotes in mysql dumps
|
323
|
+
- Freshmeat
|
324
|
+
- pycompat fixes
|
325
|
+
|
326
|
+
Version 0.40: Distribution bug-fix
|
327
|
+
|
328
|
+
Renaming of README lead to the missing file README.rst in the distro.
|
329
|
+
|
330
|
+
- Fix MANIFEST.in
|
331
|
+
|
332
|
+
Version 0.39: Minor feature enhancements
|
333
|
+
|
334
|
+
Fixes to hexdump, unicode issues (elementtree wrapper, stateparser).
|
335
|
+
Add some fixes to IP_Address comparison. The nmap output has changed in
|
336
|
+
recent versions, adapt to new format.
|
337
|
+
|
338
|
+
- Make address in hexdump configurable
|
339
|
+
- Bug-fix with comparison of sub-classes in IP_Address
|
340
|
+
- Unicode support in ETree
|
341
|
+
- Unicode support in stateparser
|
342
|
+
- Fix for trailing empty attributes in CSV output of PostgreSQL dumps
|
343
|
+
in sqlparser
|
344
|
+
- Unicode support in sqlparser (uses stateparser)
|
345
|
+
- Parse new nmap format
|
346
|
+
- Fix for configurable Releasetools location
|
347
|
+
|
348
|
+
Version 0.38: Minor feature enhancements
|
349
|
+
|
350
|
+
Fix boolean conversion of IP6_Address (and IP4_Address).
|
351
|
+
|
352
|
+
- IP6_Address would throw an error when trying a truth-test. Add
|
353
|
+
__nonzero__ (which always returns True even for the 0 Address)
|
354
|
+
|
355
|
+
Version 0.37: Minor feature enhancements
|
356
|
+
|
357
|
+
Change sort-order of IP_Address, make IP_Address immutable, use
|
358
|
+
metaclass magic to allow copy-constructor semantics.
|
359
|
+
|
360
|
+
- Sort order of IP_Address objects (both v4 and v6) now reverses the
|
361
|
+
order of the netmask: If the IP-Address part of the objects to
|
362
|
+
compare are the same, we used to sort by *inverse* netmask (putting
|
363
|
+
smaller networks with higher netmask first). We now reversed this to
|
364
|
+
be compatible with PostgrSQL cidr type objects.
|
365
|
+
- All attributes of IP_Address objects are now implemented as
|
366
|
+
properties to return the '_' variant of the attribute. Thus
|
367
|
+
IP_Address objects are (when using the public interface) immutable.
|
368
|
+
Since we already had a __hash__ method this effectively fixes the
|
369
|
+
interface to not allow mutation of objects that are in a dictionary.
|
370
|
+
- Allow calling the IP_Address constructors with another IP_Address
|
371
|
+
object. Since IP_Address objects are now immutable we use metaclass
|
372
|
+
trickery to return the passed object itself (instead of generating a
|
373
|
+
copy).
|
374
|
+
|
375
|
+
Version 0.36: Minor feature enhancements
|
376
|
+
|
377
|
+
Allow auto-coercion of comparison parameters. Add parent property and
|
378
|
+
is_sibling test.
|
379
|
+
|
380
|
+
- Now comparison operators and 'in' do auto coercion.
|
381
|
+
- Add parent property (next bigger network)
|
382
|
+
- Add is_sibling test (same parent)
|
383
|
+
|
384
|
+
Version 0.35: Minor feature enhancements
|
385
|
+
|
386
|
+
Add 'mask_len' as an alias of 'mask' to IP_Address.
|
387
|
+
|
388
|
+
- Need the network mask length (aka prefix length) sometimes as
|
389
|
+
mask_len (e.g. for FFM on github).
|
390
|
+
|
391
|
+
Version 0.34: Minor feature enhancements
|
392
|
+
|
393
|
+
Fix trafficshape to use new tc syntax. Add label to hexdump.
|
394
|
+
|
395
|
+
- The tc command has renamed the ``ipt`` action to ``xt`` (Linux
|
396
|
+
introduced xtables as a refactoring of iptables), the old ``ipt`` is
|
397
|
+
still available in ``iproute2`` but we make ``xt`` the default now.
|
398
|
+
A backward-compatibility parameter can be used to get the old
|
399
|
+
behavior.
|
400
|
+
- Add save-mark to iptables action parser.
|
401
|
+
- The hexdump class now can generate labels.
|
402
|
+
|
403
|
+
Version 0.33: Minor feature enhancements
|
404
|
+
|
405
|
+
More fixes for ast_call.
|
406
|
+
|
407
|
+
- Add parser for events from asterisk wireshark trace
|
408
|
+
- Add fail.log for 'real' test
|
409
|
+
- Don't double-register call with Call_Manager
|
410
|
+
- Allow explicit matching by account-code
|
411
|
+
|
412
|
+
Version 0.32: Minor feature enhancements
|
413
|
+
|
414
|
+
More fixes for ast_call.
|
415
|
+
|
416
|
+
- Regression test with pyst asterisk emulator
|
417
|
+
- Fix case where OriginateResponse immediately returns Failure
|
418
|
+
- Tests for cases where Hangup comes before or after the
|
419
|
+
OriginateResponse
|
420
|
+
|
421
|
+
Version 0.31: Minor feature enhancements
|
422
|
+
|
423
|
+
Fix ast_call for immediately failing calls. Fix dahdi channel
|
424
|
+
computation in isdn.py.
|
425
|
+
|
426
|
+
- Fix OriginateResponse handling in ast_call
|
427
|
+
- Fix dahdi channel computation, can't directly use the span, use the
|
428
|
+
basechan attribute
|
429
|
+
|
430
|
+
Version 0.30: Minor feature enhancements
|
431
|
+
|
432
|
+
Fix how dahdi vs. mISDN interpret what is called an interface and what
|
433
|
+
is called a port. In mISDN we can combine several ports (physical lines)
|
434
|
+
to an interface. In dahdi both are the same (a port is a span in dahdi).
|
435
|
+
|
436
|
+
- Remove parsing of B- and C- channels from dahdi isdn parser
|
437
|
+
|
438
|
+
Version 0.29: Minor feature enhancements
|
439
|
+
|
440
|
+
The lcr module is now named isdn. It can now handle isdn interfaces
|
441
|
+
managed by Asterisk DAHDI in addition to Linux Call Router (LCR).
|
442
|
+
|
443
|
+
Version 0.28: Minor feature enhancements
|
444
|
+
|
445
|
+
Fix inductance formula of Robert Weaver, thanks Robert for pointing me
|
446
|
+
to the correction you did on your new site! For most doctests in the
|
447
|
+
inductance module the error was in the lower percentage points.
|
448
|
+
Add an xxrange iterator to the iter_recipes that can replace pythons
|
449
|
+
native xrange iterator but works with long integers. Needed for some
|
450
|
+
operations on IPv6 addresses in the IP_Address module.
|
451
|
+
|
452
|
+
- Fix inductance calculation according to patch from Robert Weaver
|
453
|
+
- Add xxrange iterator to iter_recipes
|
454
|
+
- Use new xxrange instead of xrange in IP_Address module, add a test
|
455
|
+
that failed with large numbers for IPv6
|
456
|
+
|
457
|
+
Version 0.27: Minor feature enhancements
|
458
|
+
|
459
|
+
Add pageurl and pageinfo attributes to HTML_Parser.Page_Tree, other
|
460
|
+
enhancements to HTML_Parser. Add pickle support to parser classes.
|
461
|
+
Fix comparison of IP_Address classes.
|
462
|
+
|
463
|
+
- Add pageurl and pageinfo attributes to HTML_Parser.Page_Tree storing
|
464
|
+
information retrieved via geturl and info calls from urllib2.
|
465
|
+
- Parser classes in stateparser.py and HTML_Parse.py where not
|
466
|
+
pickleable, fixed by removing parser-specific attributes when calling
|
467
|
+
pickle. Note that the parsing cannot be continued after reading class
|
468
|
+
from a pickle.
|
469
|
+
- Add base_pickler module to allow pickle exceptions
|
470
|
+
- HTML_Parse: Make Parse_Error a ValueError
|
471
|
+
- HTML_Parse: Raise line number with exception
|
472
|
+
- HTML_Parse: Add a timeout
|
473
|
+
- HTML_Parse: raise Retries_Exceeded with url
|
474
|
+
- HTML_Parse: url parameter may now be None, not joined with site
|
475
|
+
parameter
|
476
|
+
- Add pageurl and pageinfo to HTML_Parse
|
477
|
+
- IP_Address: Fix comparison
|
478
|
+
- Slight refactoring of NMAP_Parser class
|
479
|
+
|
480
|
+
Version 0.26: Minor feature enhancements
|
481
|
+
|
482
|
+
Fix double-utf-8-encoding option for sqlparser. Enhance stderr handling
|
483
|
+
for exec_pipe.
|
484
|
+
|
485
|
+
- More detected broken encodings for fix_double_encode option
|
486
|
+
- execute.py: add error message from executed command to message raised
|
487
|
+
by exec_pipe, make stderr output available in non-failing case.
|
488
|
+
|
489
|
+
Version 0.25: Minor feature enhancements
|
490
|
+
|
491
|
+
Add sqlparser for parsing SQL dumps of PostgreSQL and mysql, add Phone
|
492
|
+
to parse phone numbers.
|
493
|
+
|
494
|
+
- sqlparser added
|
495
|
+
- Phone added for parsing phone numbers
|
496
|
+
|
497
|
+
Version 0.24: Minor feature enhancements
|
498
|
+
|
499
|
+
Better syntax checks and comparison operators for IP_Address, bug fixes
|
500
|
+
for parser and __str__ for IP_Address.IP6_Address
|
501
|
+
|
502
|
+
- IP_Address better syntax checks
|
503
|
+
- IP_Address __cmp__ and __eq__ improved for comparison with other types
|
504
|
+
- more regression tests for IP6_Address
|
505
|
+
- bug fixes in __str__ and parser of IP6_Address
|
506
|
+
- support for strict checking of netmask (all bits at right of netmask
|
507
|
+
must be zero if strict_mask is True)
|
508
|
+
|
509
|
+
Version 0.23: Minor feature enhancements
|
510
|
+
|
511
|
+
IP4_Address can now be put in a dict, add a subnets iterator for
|
512
|
+
IP4_Address. Factor IP_Address and add IP6_Address
|
513
|
+
|
514
|
+
- Add __hash__ for IP_Address
|
515
|
+
- The new subnets iterator for IP_Address iterates over all IPs in a
|
516
|
+
subnet. Optionally a netmask can be specified.
|
517
|
+
- Support for IPv6 addresses
|
518
|
+
- rename IP4_Address to IP_Address
|
519
|
+
|
520
|
+
Version 0.22: Minor feature enhancements
|
521
|
+
|
522
|
+
Allow unicode ip address input, hopefully make rsclib installable via pip.
|
523
|
+
|
524
|
+
- Address given to IP4_Address constructor now may be unicode
|
525
|
+
- Add download_url to setup.py to make installable via pip
|
526
|
+
|
527
|
+
Version 0.21: Minor feature enhancements
|
528
|
+
|
529
|
+
Fix autosuper: allow to inherit from non-autosuper classes, some small
|
530
|
+
fixes to ast_call and lcr parser. Fix ETree pretty-printing. Update
|
531
|
+
Freshmeat to new hostname. Add dotted netmaks parsing to IP4_Address.
|
532
|
+
|
533
|
+
- Since python2.6 constructor of "object" do not allow parameters, so
|
534
|
+
we need to strip these when doing the upcall from autosuper. This
|
535
|
+
fails when e.g. inheriting from a non-autosuper enabled class, e.g.,
|
536
|
+
class (With_Autosuper, dict)
|
537
|
+
in that case dict would get empty parameters. New implementation
|
538
|
+
finds out if our upcall is to "object", only in that case strip
|
539
|
+
parameters.
|
540
|
+
- ast_call now processes all queued unhandled events when a call is
|
541
|
+
matched.
|
542
|
+
- update regression test for ast_call.Call
|
543
|
+
- lcr parser: fix regex, port can have an empty name.
|
544
|
+
- Optimize call matching in ast_call: mark call as closed once we are
|
545
|
+
sure about the uniqueid. Add matching of Account-Code.
|
546
|
+
- Fix ETree pretty-printing: don't print unicode strings when arguments
|
547
|
+
are already converted
|
548
|
+
- freshmeat.net now is freecode.com (and the API redirects there),
|
549
|
+
update Freshmeat.py to new hostname (including .netrc credentials
|
550
|
+
with compatibility for old name).
|
551
|
+
- explicit mask paramter of IP4_Address can now be a dotted netmask.
|
552
|
+
|
553
|
+
Version 0.20: Not announced on freshmeat
|
554
|
+
|
555
|
+
Database value output for ast_cdr, added inductance calculation.
|
556
|
+
|
557
|
+
- ast_cdr: Add methods for database values of CDR records -- database
|
558
|
+
values of CDRs are different, they don't include start, end, answer
|
559
|
+
time-stamps but instead only a calldate, in addition the amaflags are
|
560
|
+
numerical in the database.
|
561
|
+
- added inductance calculation
|
562
|
+
|
563
|
+
Version 0.19: Not announced on freshmeat
|
564
|
+
|
565
|
+
Extend ETree with a walk method and implement small ldap library
|
566
|
+
|
567
|
+
- ETree: add walk method to walk the tree and call an optional pre- and
|
568
|
+
post-hook function
|
569
|
+
- ldap_lib: common ldap tasks for user and group search, and an
|
570
|
+
iterator for paged search (used with active directory).
|
571
|
+
|
572
|
+
Version 0.18: Not announced on freshmeat
|
573
|
+
|
574
|
+
Bugfix of ast_call and update for asterisk 1.6, small extension to
|
575
|
+
IP4_Address.
|
576
|
+
|
577
|
+
- ast_call: match calls via (unique) account code
|
578
|
+
- ast_call: State vs ChannelState parameter in Newstate event
|
579
|
+
- ast_call: handle immediate error from asterisk (e.g. Permission Denied)
|
580
|
+
- IP4_Address: add netblk (start and end address for address with
|
581
|
+
netmask)
|
582
|
+
|
583
|
+
Version 0.17: Not announced on freshmeat
|
584
|
+
|
585
|
+
Factor ETree (extended ElementTree) from HTML_Parse. New Freshmeat
|
586
|
+
module to get project information and submit new releases via the new
|
587
|
+
freshmeat REST API. New simple hexdump module.
|
588
|
+
|
589
|
+
- New ETree.py (extended ElementTree)
|
590
|
+
- New Freshmeat.py
|
591
|
+
- New hexdump.py
|
592
|
+
- adapt lcr module to new version of Linux Call Router
|
593
|
+
|
594
|
+
Version 0.16: Not announced on freshmeat
|
595
|
+
|
596
|
+
Add an iptables to tc translator for translating mangle rules in the
|
597
|
+
iptables PREROUTING chain to appropriate tc commands (using an ipt
|
598
|
+
action and mirred redirect actions).
|
599
|
+
|
600
|
+
- Add iptables to tc translator to trafficshape.py
|
601
|
+
|
602
|
+
Version 0.15: Not announced on freshmeat
|
603
|
+
|
604
|
+
Add a framework for traffic shaping with linux iproute (tc). Minor
|
605
|
+
updates to iter_recipes.
|
606
|
+
|
607
|
+
- Initial implementation of trafficshape.py
|
608
|
+
- Add iter_recipes.combinations from python2.6 manpage of itertools
|
609
|
+
for backward compatibility
|
610
|
+
|
611
|
+
Version 0.14: Not announced on freshmeat
|
612
|
+
|
613
|
+
Add a framework for process pipeline execution, processes can either be
|
614
|
+
python methods or external programs (with parameter list). They can be
|
615
|
+
connected in a pipe and there may be T-points in the pipe, where the
|
616
|
+
pipe forks into two or more pipelines fed by the output of one process.
|
617
|
+
|
618
|
+
- Add process pipeline framework
|
619
|
+
- HTML_Parse now has an explicit translate hook for preprocessing the
|
620
|
+
html page before parsing it. This defaults to the old behaviour of
|
621
|
+
filtering out common characters in broken HTML.
|
622
|
+
- Add nmap parser (e.g. to generate TeX tables from an nmap scan)
|
623
|
+
- Fix Lock_Mixin in execute module to remove lockfile at exit,
|
624
|
+
this used to rely on __del__ which breaks in certain cases.
|
625
|
+
- add file upload to HTML_Parse
|
626
|
+
|
627
|
+
Version 0.13: Not announced on freshmeat
|
628
|
+
|
629
|
+
Bug-Fix Release: Fix signal handler in timeout.py
|
630
|
+
|
631
|
+
- fix signal handler timeout.py
|
632
|
+
|
633
|
+
Version 0.12: Not announced on freshmeat
|
634
|
+
|
635
|
+
Add a simple timeout mechanism using SIGALRM.
|
636
|
+
|
637
|
+
- add timeout.py
|
638
|
+
|
639
|
+
Version 0.11: Not announced on freshmeat
|
640
|
+
|
641
|
+
Add a parser for CDR records in asterisk. We currently use text-files
|
642
|
+
only, this might be later extended for database use. Some fixes for
|
643
|
+
ast_call, make call-handling more robust (some race conditions would
|
644
|
+
identify events of other calls as belonging to our initiated call).
|
645
|
+
Add an execute module for executing commands and handling IO, this also
|
646
|
+
has a Lock and a Log mixin. Add ocf.py, a small framework for writing
|
647
|
+
OCF scripts for the heartbeat cluster resource manager (probably also
|
648
|
+
usable for the newer version called pacemaker but for now only tested
|
649
|
+
with the version in Debian stable aka lenny). Add lcr.py to model the
|
650
|
+
status of Linux Call Router ISDN lines.
|
651
|
+
|
652
|
+
- add ast_cdr.py
|
653
|
+
- fix ast_call.py
|
654
|
+
- fix up-chaining in stateparser.py
|
655
|
+
- add execute.py
|
656
|
+
- add ocf.py
|
657
|
+
- add lcr.py
|
658
|
+
|
659
|
+
Version 0.10: Not announced on freshmeat
|
660
|
+
|
661
|
+
add ast_call for asterisk auto-dialling, small fixes to IP4_Address, add
|
662
|
+
bero*fos configurator, experimental code for checking PDF signature
|
663
|
+
|
664
|
+
- add ast_call.py
|
665
|
+
- Firstname: don't look up names with len < 2
|
666
|
+
- IP4_Address: some aliases for common functions
|
667
|
+
- IP4_Address: add __cmp__
|
668
|
+
- bero.py: bero*fos configurator
|
669
|
+
- HTML_Parse updated for python 2.5
|
670
|
+
- stateparser update: use self.matrix by default
|
671
|
+
- PDF_Signature: experimental code for checking signatures on adobe PDF
|
672
|
+
documents
|
673
|
+
- iter_recipes: some magic with iterators
|
674
|
+
|
675
|
+
Version 0.9: Not announced on freshmeat
|
676
|
+
|
677
|
+
Add binom to the Math package, add Firstname, Bug-Fix Release Rational
|
678
|
+
|
679
|
+
- binom (n, m) computes the binomial coefficient of n, m.
|
680
|
+
- Firstname: check if candidate is a first name candidate according to
|
681
|
+
popular web site.
|
682
|
+
- Rational: On division we could get a negative denominator -- fixed
|
683
|
+
- make Config_File a descendent of autosuper
|
684
|
+
|
685
|
+
Version 0.8: Not announced on freshmeat
|
686
|
+
|
687
|
+
Added more documentation.
|
688
|
+
State-machine parser stateparser implemented. Rational number arithmetic
|
689
|
+
package added.
|
690
|
+
|
691
|
+
- stateparser implemented (simple state-machine line-oriented
|
692
|
+
configurable parser)
|
693
|
+
- usage-example of IP4_Address prints debian /etc/network/interfaces
|
694
|
+
entry.
|
695
|
+
- Math added (Euclids algorithm, gcd, lcm)
|
696
|
+
- Rational number arithmetics
|
697
|
+
- cookie processing for HTML_Parse
|
698
|
+
- basic HTML auth for HTML_Parse
|
699
|
+
- HTML_Parse: move to urllib2
|
700
|
+
|
701
|
+
Version 0.7: Not announced on freshmeat
|
702
|
+
|
703
|
+
Small Python library with various things such as Configuration file
|
704
|
+
parsing (in Python syntax), HTML and PDF parsing.
|
705
|
+
|
706
|
+
- First Release version
|