Hynek Schlawack
e245f3d3df
Fix multi-level inheritance
...
Fixes #24 .
2015-08-20 13:25:32 +02:00
Hynek Schlawack
3051fbfcd3
Minor fixes
2015-07-26 12:32:02 +02:00
Samuel A. Falvo II
765a97466d
Review feedback
2015-07-26 11:29:54 +02:00
Samuel A. Falvo II
0abd302cb2
Support optional values through a new validator.
...
Unfortunately, I'm unable to run tests locally b/c of severe dependency
hell. I am unable to get tox, detox, python setup.py test, and other
means of running tests to work at all. So, since I'm blocked on a
project by the lack of optional validator support, I am going to close
my eyes, look away, and pull the trigger, and hope I hit the target.
If someone who has a working Python configuration can please be kind
enough to let me know if my changes fail any tests, I'd be very
appreciative.
Even better, I'd love to know why a stock Python distribution with
dependencies installed is incapable of running the tests for attrs.
However, this isn't the right forum to answer that question.
(This PR has the 17+ debugging commits cleaned up.)
2015-07-26 11:29:53 +02:00
cyli
b3ef2844c5
If you subclass an attr class, the repr should include the name of the subclass, not the superclass, even if you don't redecorate with another @attr.s
2015-07-21 16:25:28 -07:00
Hynek Schlawack
788ade3bcf
Fix flake8
2015-07-03 12:15:05 +02:00
Hynek Schlawack
0149b538ab
Fix tests on Python 2.6
...
Fixes #14 and #15 .
2015-07-03 11:30:53 +02:00
Hynek Schlawack
abb9c95232
Check type of set_run_validators' arg
...
Dedicated to everyone who passed accidentally strings from config files into
it.
2015-06-05 20:28:50 +02:00
Hynek Schlawack
d964845899
Make __attrs_attrs__ a tuple
...
Having a mutable and rather heavy data structure for something that is supposed
to be immutable doesn't seem to make sense.
2015-03-23 09:17:54 +01:00
Hynek Schlawack
2a91800150
Add include and exclude filter helpers
2015-02-20 16:34:21 +01:00
Hynek Schlawack
fba942270b
Stay happy and positive
...
Closes #6
2015-02-20 13:29:47 +01:00
Hynek Schlawack
a185bbfdfb
Add option to disable validators globally
2015-02-20 11:30:46 +01:00
Hynek Schlawack
980067d8f1
We're ASCII-clean
2015-02-20 11:22:10 +01:00
Hynek Schlawack
043f4d55d7
Take class namespaces into account in repr
...
Also add an explicit option for Python 2.
2015-02-20 09:47:08 +01:00
Hynek Schlawack
5648b28e0e
Accidental smart quote
2015-02-18 21:54:27 +01:00
Hynek Schlawack
b88b85779e
Add smart support for sub-classing
2015-02-18 21:31:32 +01:00
Hynek Schlawack
a44357ad83
Fail with a meaningful error msg on old-style classes
2015-02-18 20:38:29 +01:00
Hynek Schlawack
01cdff398f
Move conftest.py out of tests
2015-02-16 16:30:05 +01:00
Hynek Schlawack
08ff764de7
Pass instances into validators
...
Also construct the instance first and then run all validators on it.
This allows for cross-attribute validation.
2015-02-09 13:16:56 +01:00
Hynek Schlawack
15d568a2cc
Validate only if there's a validator
...
Fixes #5
2015-02-09 12:01:51 +01:00
Hynek Schlawack
445b6b2e00
Add these argument to attr.s
...
Useful for third party classes and when using properties.
Based on feedback by @econchick & @hawkowl
2015-02-08 16:31:16 +01:00
Lynn Root
ab6b3e9b4b
Fix typo
2015-02-07 14:03:17 -06:00
Hynek Schlawack
4e81b7b5e2
Rename add_XXX to no_XXX
...
Assume you want everything by default and be consistent with the no_XXX
attributes on Attribute.
2015-02-07 09:15:59 +01:00
Hynek Schlawack
ddf0256527
Rename skip to filter and reverse logic
2015-02-06 14:56:02 +01:00
Hynek Schlawack
1bcecf3970
Only recurse into list items if they are ours
2015-02-04 16:32:18 +01:00
Hynek Schlawack
2321fc202a
Recurse into containers too, add skip in asdict
2015-02-04 16:12:32 +01:00
Hynek Schlawack
c8c7a60389
Rename valid to validate
...
valid kind of implies a boolean return code.
2015-02-02 14:04:47 +01:00
Hynek Schlawack
2cab907370
Add attr.valid
2015-02-02 12:13:11 +01:00
Hynek Schlawack
82892487fb
Remove assignment validation again
...
Mainly because:
1. I don't want to encourage mutations.
2. It's impossible to protect the attributes from becoming invalid anyway so
this is a lot of complexity (and __setattr__ overwriting) but only little
benefit.
2015-01-31 18:01:31 +01:00
Hynek Schlawack
e7ebf4bf81
Allow single attributes to be excluded
2015-01-30 17:48:34 +01:00
Hynek Schlawack
943d686509
Validate assignments
2015-01-30 13:30:47 +01:00
Hynek Schlawack
7c85d68de2
Verify amount of arguments passed to Attribute
2015-01-30 13:26:44 +01:00
Hynek Schlawack
5753281838
Add attrs.make_class
2015-01-30 08:57:33 +01:00
Hynek Schlawack
f61fb5d185
Eliminate factory field
...
Instead, have only one default field. If the default value is an instance of
attr.Factory, use it as a factory.
2015-01-29 23:10:56 +01:00
Hynek Schlawack
717dcdadca
Short default_value to default
2015-01-29 22:32:41 +01:00
Hynek Schlawack
9cb48a5814
Shorten default_factory to factory
2015-01-29 22:29:37 +01:00
Hynek Schlawack
16d9c464e3
Rename ls to fields
2015-01-29 21:55:25 +01:00
Hynek Schlawack
b79c3afec3
Rename to_dict to asdict
...
For stdlib compatability.
2015-01-29 21:50:07 +01:00
Hynek Schlawack
7aaab84091
Add assoc
2015-01-29 20:50:42 +01:00
Hynek Schlawack
477f1782b6
Add tests for provides's repr
2015-01-29 19:41:58 +01:00
Hynek Schlawack
4f62d47d08
We don't need three names for the same thing
2015-01-29 19:39:49 +01:00
Hynek Schlawack
8bb430cf18
Add basic support for zope.interface
2015-01-29 19:04:23 +01:00
Hynek Schlawack
8f98b38136
Increase branch coverage
...
And a lot of under the hood work.
2015-01-29 17:31:49 +01:00
Hynek Schlawack
3e45f0559e
Strip underscore for __init__
...
There is not such thing as private parameters.
2015-01-29 13:05:04 +01:00
Hynek Schlawack
692e4613a0
Add instance_of validator
2015-01-29 12:20:17 +01:00
Hynek Schlawack
774cf0142a
Pass the Attribute object into validators
...
This allows for more generic validators.
2015-01-29 09:22:06 +01:00
Hynek Schlawack
372c55318c
Add validators
2015-01-28 15:54:41 +01:00
Hynek Schlawack
d291e8c4dc
Add some API docs
...
Also define ls and has only for classes.
2015-01-28 15:16:42 +01:00
Hynek Schlawack
fdd41b0466
Rename s to _add_methods
...
...and rename within __init__.py
2015-01-28 12:38:54 +01:00
Hynek Schlawack
104e663551
Add `has`
2015-01-28 11:34:30 +01:00