-
Notifications
You must be signed in to change notification settings - Fork 38
/
CHANGES.txt
173 lines (124 loc) · 5.86 KB
/
CHANGES.txt
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
1.0a9 (unreleased)
------------------
- Drop support of Python 2.4 / 2.5 / Jython.
- Add ``lift`` and ``onlyliftedfrom`` class decorators to allow for inheritance
of venusian decorators attached to superclass methods. See the API
documentation for more information.
1.0a8 (2013-04-15)
------------------
- Pass ``ignore`` argument along recursively to ``walk_packages`` so custom
ignore functions will ignore things recursively. See
https://github.com/Pylons/venusian/pull/16
- Don't run tox tests under Python 2.4 anymore (tox no longer supports 2.4).
1.0a7 (2012-08-25)
------------------
- Venusian now works on Python 3.3b2+ (importlib-based).
- Use nose-exclude instead of relying on fragile module-scope code to ensure
we don't get errors resulting from import of fixture code during
"nosetests".
- Bug fix: no longer suppress ``ImportError`` while scanning by default. If
you want to suppress ``ImportError`` while scanning, you'll now need use an
``onerror`` callback as described in the documentation.
1.0a6 (2012-04-23)
------------------
- Don't ignore decorated objects within their original locations if they
happen to be imported into another module (remove ``seen`` set from invoke
in venusian scanning). See https://github.com/Pylons/venusian/pull/13 .
1.0a5 (2012-04-21)
------------------
- Slightly less sucky way to ignore objects during scanning that are only
imported into a module but not actually defined there. See 1.0a4 change
notes for rationale. Now instead of checking whether the module of the
*scanned object* matches the module being scanned, we check whether the
module of the *Venusian attachment* matches the module being scanned. This
allows some genuine uses of imported objects as Venusian scan targets while
preventing inappropriate double-scanning of objects that have a venusian
attachment which just happen to be imported into other scanned modules.
- Add ``dev`` and ``docs`` setup.py commands (ala Pyramid).
1.0a4 (2012-04-16)
------------------
- Attempt to ignore objects during scanning that are only imported into a
module but not actually defined there. This is a semantics change, but
it's the right thing to do, because I found myself facing a situation like
this::
# in a module named "one"
from two import anotheradecoratedthing
@adecorator
def adecoratedthing(): pass
# and scanning both modules
scan('one')
scan('two')
In this case you'd wind up with two repeated registrations for
"anotherdecoratedthing", which isn't what anyone expects.
1.0a3 (2012-02-08)
------------------
- Add an ``ignore`` argument to the ``scan`` method of a ``Scanner``. This
argument allows a user to ignore packages, modules, and global objects by
name during a ``scan``. See the "ignore Scan Argument" in the narrative
documentation for more details.
1.0a2 (2011-09-02)
------------------
- Close ImpLoader file handle to avoid resource warnings on Python 3.
1.0a1 (2011-08-27)
------------------
- Python 3 compatibility.
- Allow an ``onerror`` callback to be passed to ``Scanner.scan()``.
0.9 (2011-06-18)
----------------
- Prevent corner case scan-time exception when trying to introspect insane
module-scope objects. See https://github.com/Pylons/venusian/issues/5 .
0.8 (2011-04-30)
----------------
- Normal "setup.py test" can't support running the venusian tests under py
2.4 or 2.5; when it scans the 'classdecorators' fixture, it barfs. To get
around this, we used to depend on ``nose`` in ``setup_requires`` and tell
"setup.py test" to use nose by setting test_suite to "nose.collector" but
we can't anymore because folks use Venusian in systems which install from
pip bundles; pip bundles do not support setup_requires. So, sorry, we're
painted into a corner; at this point you just have to know to install nose
and run "setup.py nosetests" rather than "setup.py test". Or just run
"tox" which tests it under all Pythons.
0.7 (2011-03-16)
----------------
- Use Pylons theme in documentation.
- Fix orphaned pyc test on pypy.
- Fix GitHub Issue #1: subclasses of decorated classes that do not
have any decorations should not inherit the decorations of their
parent classes.
- Fix GitHub Issue #2: scans should only "find" each object once per
scan, regardless of how many modules that object is imported into.
0.6 (2011-01-09)
----------------
- Some metaclasses (Elixir's) don't raise an AttributeError when asked for a
nonexistent attribute during a scan. We now catch all exceptions when
interrogating an object for ``__venusian_callbacks__`` rather than just
AttributeError.
0.5 (2010-12-19)
----------------
- Make ``codeinfo`` attribute available as an attribute of the AttachInfo
object. It will be a tuple in the form ``(filename, lineno, function,
sourceline)`` representing the context of the venusian decorator. Eg.
``('/home/chrism/projects/venusian/tests/test_advice.py', 81,
'testCallInfo', 'add_handler(foo, bar)')``
0.4 (2010-09-03)
----------------
- Bug fix: when a venusian decorator used as a class decorator was
used against both a class *and* a subclass of that class, the
superclass and subclass would effectively share the same set of
callbacks. This was not the intent: each class declaration should
have its own local set of callbacks; callbacks added via decorations
should not be inherited, and a superclass should not receive its
subclass' decorations.
- Arrange test fixtures into a single directory.
0.3 (2010-06-24)
----------------
- Ignore orphaned modules (``.pyc`` or ``.pyo`` files without a
corresponding ``.py`` file) during a scan.
0.2 (2010-04-18)
----------------
- Add the concept of scan categories (see the "Scan Categories"
section of the documentation) to allow an application to make use of
more than one Venusian-using framework simultaneously.
0.1 (2010-02-15)
----------------
- Initial release.