Add
* Added docstring note about “__slots__” to ModuleBase. [Alexander Böhn]
* Added a nota benne about the instance/class name. [Alexander Böhn]
* Adding “clu.abstract” ABCs module and class-module tests. [Alexander Böhn]
* Added “array.ArrayType” to the typespace as “types.Array” [Alexander Böhn]
Other
* Bump version: 0.3.8 → 0.3.9. [Alexander Böhn]
* Caching module specs in “clu.importing” ... this works across all “clu.importing.FinderBase” subclasses – meaning for all defined appnames – short-circuting spec lookups within “sys.meta_path” to the first “FinderBase” subclass when the spec in question is in the cache. TAKE THAT, LATENCY. [Alexander Böhn]
* Killed gratuitous “chain()” in “clu.importing.ModuleBase.__dir__(…)” [Alexander Böhn]
* Clarified the “clu.importing.Package” docstring. [Alexander Böhn]
* Only split spec.name if it’s registered. [Alexander Böhn]
* Removed unused class-keyword argument check. [Alexander Böhn]
* Sorting registered appnames in “clu.importing” [Alexander Böhn]
* Removed read/write access code in “clu.importing.Registry” [Alexander Böhn]
* Disabled read/write access to the “clu.importing.Registry” data ... commented out, for now. [Alexander Böhn]
* Un-un-fixed inline test in “clu.importing” [Alexander Böhn]
* Nixed a bit of dead code. [Alexander Böhn]
* Class modules work with more than one appname ... for future generations: the bug was in the one comparison being done in “clu.importing.FinderBase.find_spec(…)”, FYI. [Alexander Böhn]
* Mostly fixed “clu.importing.LoaderBase.module_repr(…)” [Alexander Böhn]
* A docstring for “clu.importing.Package” [Alexander Böhn]
* Class modules also inherit from “clu.importing.Package” [Alexander Böhn]
* Actually let’s do it this way instead. [Alexander Böhn]
* Ensure intermediate module instances are packages ... as in, they have a “__path__” attribute containing a list. [Alexander Böhn]
* Docstring for “clu.importing.initialize_types(…)” [Alexander Böhn]
* Testing importing a member function of a class-module. [Alexander Böhn]
* Ensure DO_NOT_INCLUDEs aren’t included in “dir(module)” [Alexander Böhn]
* Basics of “clu.importing” – class-based modules. [Alexander Böhn]
* Miscellaneous predicates I wrote in the middle of the fucking night. [Alexander Böhn]
* Inserted module-local versions of a few lambdas into “exporting” ... in the name of breaking dependency cycles that these static type-checkers can’t reason their way around. [Alexander Böhn]
* Makefile and type-check setup tweaks. [Alexander Böhn]
* Gearing up for some basic type-checking. [Alexander Böhn]
* Catch SyntaxError as well as ImportError in “clu.constants.polyfills” [Alexander Böhn]
* Ensure the fake “lru_cache(¬)” uses a __wrapped__ attribute. [Alexander Böhn]
* Trimmed dead code. [Alexander Böhn]
* Re-implemented “clu.predicates.finditem[s?]” ... now using `searcher(…)/collator(…)` instead of `apply_to(…)` [Alexander Böhn]
* Dispatch functions in “clu.extending” can all have the same name ... fucking finally. [Alexander Böhn]
* Major tuneups in “clu.extending” including annotation support! ... also the “clu.extending.DoubleDutchRegistry” classes’ “cache” attribute is now a real actual LRU cache (courtesy zict) and not just a copy of the dict it was supposedly caching ... also expanded renaming support in “clu.exporting” and added a related test or two. [Alexander Böhn]
* Full coverage for “clu.extending” in module inline tests. [Alexander Böhn]
* Updates for “clu.typology” metaclass support in “repl-bpython.py” [Alexander Böhn]
* Many additions to “clu.typology” including metaclass support ... predicates for checking metaclasses and dealing with metatype and ABC lists ... tests for these new additions ... refinements in “clu.extending” including new greek letters! ... miscellaneous updates in accordance with this awesome new shit. [Alexander Böhn]
* OMEGA MARKS THE END (by which I mean, the “pair(…)” tests run OK!!! [Alexander Böhn]
* Changes “clu.predicates.pyname(…)” to match “determine_name(…)” ... q.v. the previous commit note supra. w/r/t the “__qualname__” and “__name__” attributes. [Alexander Böhn]
* Exporter instances and subclasses can now be unregistered ... with tests for both that, and the new “__wrapped__”-function awareness logic ... in doing this we had to subtlely but fundamentally alter the logic within the verenable “clu.exporting.determine_name(…)” function – it now privileges “__name__” over “__qualname__” while going about its business. Tests seem to suggest this hasn’t perturbed anything, but that function is at the heart of the export system and so I wanted to make a note of the change here. [Alexander Böhn]
* A list comprehension should be faster than a “list(genexp)” ... right?… [Alexander Böhn]
* Since export handles __wrapped__ we can drop these manual exports ... also there is now a flag to make any function decorated with itervariadic not iterate variadically, on like a case-by-case basis. [Alexander Böhn]
* Many rather significant updates: 1) The exporter will follow a “__wrapped__” attribute on a function to determine its name 2) Added “clu.predicates.itervariadic(…)”, a decorator to allow a function accepting (•args) to, when called with one iterable argument, to expand the iterable into “•args” when appropriate … “where appropriate” meaning it won’t do this by default on string/bytes/file-path-like arguments. 3) Updated the “__iter__()” methods of a bunch of things across the project to use “yield from” whenever possible, and to generally be less circuitous 4) Speaking of “__wrapped__”, that attribute is now set by at least one of my functional tools (I know “clu.fs.misc.wrap_value(…)” will do it but I forget the other one or two I updated RN). 5) Made some miscellaneous refinements in “clu.extending”. 6) The rest is A SURPRISE (because I forgot already – see the diff my fellow nerds, yes!) [Alexander Böhn]
* Trimmed dead code. [Alexander Böhn]
* Exporting Ω(a, b) as an alias for “clu.extending.pair(…)” [Alexander Böhn]
* The inlineiest and the testiest inline tests for “clu.extending” ... also another use of module “__getattr__(…)” – this time, it’s to initiate the… runtime adjuistment… of the testing utility module “pout” (which was writing all its shit to `sys.stderr` which in TextMate is this mass of godawful red text, plus I prefer `sys.stdout` for capturing and other shit, etc etc ok yeah OK). [Alexander Böhn]
* A little early Chanukkah present from RPython – ... check this crazy shit out; originally from here: https://bitbucket.org/pypy/pypy/src/default/rpython/tool/pairtype.py. [Alexander Böhn]
* Commenting in, commenting out. [Alexander Böhn]
* Formally requiring “pout” (for now) [Alexander Böhn]
* Ported most of the ChainMap unit tests to an inline function ... for introspectability. Strangely enough they don’t assert-fail in that context. I am beginning to worry that I have gone and done something very, very stupid somewhere in that testsuite… [Alexander Böhn]
* Tests of all sorts for “clu.dicts.ChainMap” [Alexander Böhn]
* I did a ChainMap. [Alexander Böhn]
* More ABC-reshuffling. [Alexander Böhn]
* Moved “clu.config.abc.ReprWrapper” around in the inheritance chain. [Alexander Böhn]
* Well pypy3 is •trying• to run the testsuite in tox. [Alexander Böhn]