Python-clu

Latest version: v0.8.5

Safety actively analyzes 682404 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 8

0.5.6

Add

* Added weakref types to the typespace, and SimpleNamespace inline tests. [Alexander Böhn]

* Added the fixture-cache-stats diagnostic to “clu.config.defg” [Alexander Böhn]

* Added a diagnostic to print a report on the fixture cache stats. [Alexander Böhn]

* Added metafunction capabilities to “clu.testing.utils.InlineTester” [Alexander Böhn]

* Added unit tests for the boilerplate generation command. [Alexander Böhn]

Minutiae

* Minutiae. [Alexander Böhn]

Other

* Bump version: 0.5.5 → 0.5.6. [Alexander Böhn]

* Spicing up the bpython REPL with more datastructure samples ... pre-made and ready-to-eat!! [Alexander Böhn]

* Miniscule change in “clu.exporting” allows method docstring mutation ... !!! ... also, there are a bunch of docstring mutations in the namespace module ... aaaaaand the removal of that wack and horrible hacked-up “isnamespace(…)” predicate from “clu.predicates” – there is a real, non-hacky version in “clu.typespace.namespace” from here on out, ok? OK!! [Alexander Böhn]

* Docstring edits in “clu.importing” [Alexander Böhn]

* Dropped gratuitous “list(…)” from “Directory.importables(…)” innards. [Alexander Böhn]

* Changelog requirements include install requirements. [Alexander Böhn]

* Whitespace. [Alexander Böhn]

* Fixed SimpleNamespace.__dir__(…)” and “SimpleNamespace.__repr__(…)” ... wbich were apparently broken?… WHOOOOOPS. [Alexander Böhn]

* Clarified the in-use syntax of our intermediate dataclass decorator. [Alexander Böhn]

* ModuleSpec instances are no longer considered packages by default. [Alexander Böhn]

* Fixing the report-format sizing… YET ONCE AGAIN. [Alexander Böhn]

* Gratuitous further simplification. [Alexander Böhn]

* Using the “clu.testing.utils.InlineTester” fixture dictionary ... instead of hardcoding, fuck yeah dogg. [Alexander Böhn]

* Slight performance gain made via pass-through-ing of some methods ... specifically the “keys(…)”, “items(…)” and “values(…)” methods; this is likely due to those having fallen back to the default implementations prior to the explicit pass-through, which meant that “clu.config.defg.Nested” proxies were using the classes for key/items/values views that did not take advantage of any of the “NamespaceWalker” machinery. [Alexander Böhn]

* Changed the internal weakref field name from “keymap” to “referent” ... which the former was both weirdly syntactically repetetive and amiguously confusing; the latter says what it actually is and isn’t the name of any other things already in use in general. [Alexander Böhn]

* Got rid of reasonable-looking but completely stupid clone() impl ... which would have created a weakref to a temporary, essentially ... UGH. [Alexander Böhn]

* Fixed generated docstrings on returned test functions ... FYI, docstrings with format components are, like, undefined behavior it looks like…?! [Alexander Böhn]

* Docstrings ‘n’ notes for the proxy-related inline metafunctions. [Alexander Böhn]

* Slightly less class-level clutter. [Alexander Böhn]

* Actually using the class method I just added. [Alexander Böhn]

* Truly a miniscule rearrangement of things. [Alexander Böhn]

* Many more inline tests for “clu.config.proxy” types. [Alexander Böhn]

* Made the “ExporterBase” use its instance registry as a cache ... so, like, “ExporterBase.__new__(…)” returns existing instances for dotpaths matching the invocation arguments. [Alexander Böhn]

* Minute updates to the bpython REPL script. [Alexander Böhn]

* I can’t believe I forgot to inherit Proxy from View, uggggh. [Alexander Böhn]

* Reverted the use of newer “KeyMap” classes in “FileBase” ancestors ... this was causing base-class layout conflicts when “__weakref__” slot members were added to the abstract bases at the root of the KeyMap class tower. I left the KeyMap imports in, commented out – when I get rid of all the old namespaced-mapping shit in favor of the all-new hottness this will be such a non-issue you will forget having even read this commit note, doggie, yeah. [Alexander Böhn]

* Moved “__weakref__” slot declaration down to “FrozenKeyMapBase” [Alexander Böhn]

* Initial inline tests for “KeyMapView” and “KeyMapProxy” [Alexander Böhn]

* You know, sometimes, resource allocation *is* initialization. [Alexander Böhn]

* Minor cleanup in “clu.testing.utils” [Alexander Böhn]

* Minor renames in “clu.testing.utils” [Alexander Böhn]

* Killed dead code. [Alexander Böhn]

* I ❤️ fstrings. [Alexander Böhn]

* Updated the “clu.testing.utils.InlineTester” docstring ... now the code sample illustrates returning POSIX status values. [Alexander Böhn]

* Changelog and git-ignore tweaks. [Alexander Böhn]

0.5.5

Other

* Bump version: 0.5.4 → 0.5.5. [Alexander Böhn]

* Integrating “gitchangelog” and taking it for a trial run. [Alexander Böhn]

* A fine Commit 1,000 as any: preservation of namespace insert-order ... happy order-of-magnitude-aversary, my dear CLU, and salud! [Alexander Böhn]

* Inline tests return POSIX exit status values and call “sys.exit(…)” ... also there is a command that copies the CLU boilerplate starter code right to YOUR CLIPBOARD!!!! Huzzah. [Alexander Böhn]

* First draft of “KeyMapView” and “KeyMapProxy” ... which those are ‘FrozenKeyMap’ and ‘KeyMap’ types, respectively, that wrap weakrefs to actual KeyMap instances and forward method calls to those instances down from the public API. ... includes a decorator “selfcheck” that tests the Truthiness of the ‘self’ instance before the actual method invocation and raises a ‘ValueError’ for any and all unworthy instance values. ... tests and all that other hoohah to follow, after I veg out with the cats and some kombucha and watch me some YouTube. [Alexander Böhn]

* Generators beat constructed lists. [Alexander Böhn]

0.5.4

Add

* Added a “shortrepr(…)” method to show namespace info, sans newlines ... also added the “show-consts.py” and “show-modules.py” script invocations to the Makefile. [Alexander Böhn]

* Added a “clu.importing.PerApp.appspaces()” convenience function ... does precisely what you think it does. [Alexander Böhn]

* Added inline test for “clu.importing.ProxyModule” fallbacks. [Alexander Böhn]

* Addressing automated GitHub security alert. [Alexander Böhn]

Minutiae

* Minutiae. [Alexander Böhn]

Other

* Bump version: 0.5.3 → 0.5.4. [Alexander Böhn]

* How many commits are just, however circuitously, pushing whitespace? [Alexander Böhn]

* Inline fixture is inline-fixture’d. [Alexander Böhn]

* Trying to figure out if inline-testing instance methods is worth it. [Alexander Böhn]

* Fold my case. [Alexander Böhn]

* Using str.casefold() instead of str.lower() for comparison. [Alexander Böhn]

* Fixed a few assertions. [Alexander Böhn]

* Cleaned up the “clu.importing” inline testsuite a bit. [Alexander Böhn]

* Environment-var diagnostic printout function and fixture decorator ... among other additions to “clu.testing.utils.InlineTester” ... fixtures are memoized with “functools.lru_cache(…)” and stored in a dict in the “inline” instance; maybe I will add automatic cache-warming as a precheck function, and/or a report on cache usage as a diagnostic… WHO KNOWS REALLY. [Alexander Böhn]

* Inline test harness support for preflight and diagnostic functions ... So, like, you can decorate things like so: [Alexander Böhn]

inline.precheck
def preflight_function():


inline.diagnostic
def post_execution_function():


... Functions decorated per the former will each run exactly once,
before the main test run; those decorated as per the latter
will each run exactly once, after the main test run.
... There are examples of these in a bunch of my inline test suites
for you to peruse
... There was some internal abstraction and consolidation that
happened in “clu.testing.utils.InlineTester” to support all of
this – all good and fairly legible changes, I should say; the
new things have docstrings and stuff. Yes!

* Computing lambda qualified name in lambda-repr test. [Alexander Böhn]

* Cleaned up some testing stuff, both inline and out. [Alexander Böhn]

* Proper index-labeling and ordering for inline test functions. [Alexander Böhn]

* Using the “flatdict()” fixture-ish function in KeyMap inline tests ... also killed some dead code in “clu.testing.utils” [Alexander Böhn]

* WTF HAX. [Alexander Böhn]

* Fixed a regression with hacky “isnamespace(…)” from “clu.predicates” [Alexander Böhn]

* Explicit > Implicit. [Alexander Böhn]

* Don’t trigger “__missing__(…)” during “ChainModuleMap” item access. [Alexander Böhn]

* Even more repr-related refactors. [Alexander Böhn]

* Miscellaneous repr-related tweaks and updates. [Alexander Böhn]

* I just worked really really hard… on fixing “Namespace.__repr__(…)” ... I mean “SimpleNamespace” had this copypasta from SO, and the ancestor “Namespace” used this super-janky thing that, like, called “pprint.pformat(…)” on the instance ‘__dict__’ and then opaquely regexed the results of that for some reason – ... sooooo I switched them to use “clu.abstract.ReprWrapper” and everything started exploding with outlandish infinite-recursion error supernovae; ... so I started playing around with “reprlib” – ... I first tried applying “recursive_repr(…)” to “ReprWrapper” methods, which didn’t really help – ... I did a lot of fucking around and to make a long story short, there is now a “reprlib.Repr” subclass with recursion-friendly methods sitting in “clu.typespace.namespace” – ... There was way more recursion than just that tho: I battled recursive imports, recursive stringification, recursive fuckall and who the fuck knows… all really my own sloppy fault, I mean I haven’t updated “clu.typespace” in millenia, it feels like ... and THEN at the end of it all, when things worked, I spent even MORE time tweaking the stupid string-formatting for like an hour, making it JUUUUUUST RIIIIIIGHT ... blech! Fuck yes. [Alexander Böhn]

* Oh yeah… explicit is soooo much better than implicit – and thus. [Alexander Böhn]

* ¡IMPLICIT RECURSIVE NAMESPACES! [Alexander Böhn]

* Futzed with inline-test names, naming, and name-display. [Alexander Böhn]

* “clu.importing.PolymerType.add_module(…)” checks existing appspaces ... raises a ‘NameError’ should you attempt to add a module with an appspace that already exists. [Alexander Böhn]

* Allowing “clu.importing.ProxyModule” to target other ProxyModules ... when a ProxyModule is encountered while processing the list of targets, its existing contents are extracted, flattened out, and merged into the governing proxy’s internal ChainModuleMap. [Alexander Böhn]

* Extremely minor test docstring tweak. [Alexander Böhn]

* Docstring updates for “ProxyModule” and “ChainModuleMap” ... the callable/‘__missing__(…)’ stuff has had the shit documented out of it. [Alexander Böhn]

* “clu.importing.ProxyModule” knows about module ‘__getattr__(…)’ ... and “MappingType.__missing__(…)” too, and callables in general. [Alexander Böhn]

0.5.3

Add

* Additional sanity-check in “Environ.__exit__(…)” [Alexander Böhn]

* Added wildcard «‽» to the semantic-version regex “build” field. [Alexander Böhn]

* Additional testing to ensure that “FrozenEnv” is frozen. [Alexander Böhn]

* Added API to directly access the backing environment dictionary. [Alexander Böhn]

* Added proper error-handling when calling Git commands. [Alexander Böhn]

* Added “version” make target. [Alexander Böhn]

Other

* Bump version: 0.5.2 → 0.5.3. [Alexander Böhn]

* Ensuring no duplication occurs when initializing ProxyModules ... also, it seems I misunderstood the use of the “module” param accepted by “collections.namedtuple”… erm. [Alexander Böhn]

* As much as I appreciate this inadvertant neologism my OCD disallows it. [Alexander Böhn]

* Tailored non-logorrheic type-reprs for class-modules and friends ... also added a whole shitton of exemplary docstrings and assorted programmer notes ... and tweaked the exception-handling messaging in “ProxyModule”’s ‘__getattr__(¬)’ logic ... and added the first new beginning of a “clu.application” module (which right now is just copypasta from “clu.importing” that’ll get deleted in short order – but it’s something, which you will not is not nothing, is it not not?? [Alexander Böhn]

* Whitespace. [Alexander Böhn]

* “typing.Mapping[…]” is more general than “typing.Dict[…]” [Alexander Böhn]

* Reordered the dataclass & the mapping, reflecting definition order. [Alexander Böhn]

* Shortcutting the dataclass decorator in the name of legibility. [Alexander Böhn]

* Deduplicated the efforts between “initialize_{new_types,module}(…)” [Alexander Böhn]

* Fixed it! [Alexander Böhn]

* Go by the name you’ve been given, not just the one you’re called. [Alexander Böhn]

* Trimmed dead code. [Alexander Böhn]

* I should have done this a loooong time ago – ... that is to say: added a per-appname class registry for all the Finders, Loaders, individually-appspace’d Module subtypes… all that shit in “clu.importing” basically. [Alexander Böhn]

* Storing the app-named “Loader” class in its companion “Finder” [Alexander Böhn]

* Extremely minor/subtle logic nitpick in “Environ.__exit__(…)” [Alexander Böhn]

* Compensated for Falsey argument behavior. [Alexander Böhn]

* Whitespace. [Alexander Böhn]

* Reverting unnecessary confusing complexification. [Alexander Böhn]

* WHOOOOOPS. [Alexander Böhn]

* Allow non-None but Falsey “environment” args in Nested’s constructor. [Alexander Böhn]

* Split inline testing data into two ‘pseudo-fixture’ functions. [Alexander Böhn]

* Narrowing the scope of the semantic-version regex. [Alexander Böhn]

* Git version inline tests now check Git output against CLU version. [Alexander Böhn]

* Find path to Git binary on “clu.version.git_version” module load. [Alexander Böhn]

* Amended the ProxyModule unit test by one assertion. [Alexander Böhn]

* Sequester the “targets” ProxyModule attribute rather than deleting. [Alexander Böhn]

* Neatened up some of ProxyModule’s parts: docstrings, init stuff, &c ... fleshed out an inline test or two in “clu.importing” as well. [Alexander Böhn]

* Renamed a related test function. [Alexander Böhn]

* Context-managed environment access for mutable “Environ” instances. [Alexander Böhn]

* Docstring labeling for inline KeyMap tests. [Alexander Böhn]

* Better test-function lexical grouping. [Alexander Böhn]

* Traded gratuitous test prints for generally real-er testing code. [Alexander Böhn]

* Out with pointless varargs, in with docstrings ... also in with DefaultDicts by, erm, default in the Nested types ... and also, in with key checking for mutable Nested type deletes ... and also other stuff. [Alexander Böhn]

* More inline-test formatting minutiae and speedups. [Alexander Böhn]

* Nitpicks on inline test output formatting. [Alexander Böhn]

* Copied ‘clu/__main__.py’ to ‘clu/version/__main__.py’ ... in anticipation of, you know, putting something real up in the package-level main file, doggie. [Alexander Böhn]

* Minor logic shortcut in new “FrozenNested.submap(…)” method ... in no way was implementing this the panacea of O(1)-ness I had assumed it’d be when I started, baaaah. [Alexander Böhn]

* Packed string compare beats iterative namespace chunk compare. [Alexander Böhn]

* Ooops – forgot to actually change directories. [Alexander Böhn]

* Ensure that “git_version_tags(…)” uses the project base directory. [Alexander Böhn]

0.5.2

Add

* Added a “clu.version.git_version” module and trivial functions ... simple shit to get the git tag version ... unlike the other stuff under “clu.version” which are pretty much entirely self-contained, “clu.version.git_version” uses standard CLU stuff (e.g. the Exporter, the inline test harness, et cetera) so WE’LL JUST SEE HOW THIS GOES NOW WON’T WE. [Alexander Böhn]

* Added ‘ValuesView’ and ‘ItemsView’ tailored for “NamespaceWalker” ... which these types each implement much faster, less circuitous versions of the “__contains__(…)” and “__iter__()” methods, utilizing the “walk()” method of their associated mappings ... the necessity for these was no gamble or – oddly enough in my personal case – wasn’t premature. No! I saw the need for speed reflected in the timing reports coming from my own new outfit for running inline tests – see all those recent changes to the “clu.testing.utils” module, specifically regarding “inline” and friends. Yes!!!!! [Alexander Böhn]

* Added “iterlen(…)” to put an end to like e.g. “len(tuple(¬))” ... pretty much a straight-up ⌘-c ⌘-v from the “more-itertools” source – namely their function “ilen(…)” [Alexander Böhn]

* Added a bunch of ancestors to “clu.testing.utils.inline” [Alexander Böhn]

* Added “inline” decorator to bpython REPL script. [Alexander Böhn]

* Added note about executing test functions multiple times. [Alexander Böhn]

Minutiae

* Minutiae. [Alexander Böhn]

Other

* Bump version: 0.5.1 → 0.5.2. [Alexander Böhn]

* Updated “clu-version” to output a Git version tag, if present. [Alexander Böhn]

* Propagated the docstrings. [Alexander Böhn]

* Some revisions and streamlining to “clu.fs.filesystem.back_tick(…)” ... the verenable function had a few implicit shortcomings: only lists and tuples were valid as non-string command arguments; bytes-mode output decoding was being handled by some specious logic of mine, instead of by just using the “text” argument to the “subprocess.Popen” constructor; “shlex.split(…)” was called in “non-posix mode”, whatever the fuck that means; assorted other messiness also abounded. [Alexander Böhn]

* Tuneups to inline test information-printouts ... first off, a “verbose” kwarg flag keeps the decorator wrapper function from wasting time printing out information that is just going to get consumed by the stdout-redirector used during all run cycles after the first one; ... but then secondly, we retrieve the test functions’ docstring, and call the first stripped line of that docstring the “title”, and we stick that in the header printed for each test function. No use of this datum elsewhere (for the moment). [Alexander Böhn]

* Fast environment-specific “__contains__(…)” and “__getitem__(…)” ... key-prefix conversion is much much faster than “walk(…)” over the whole backend data source, doggie. [Alexander Böhn]

* Brought a filesystem test over to “clu.testing.utils” as an inline ... to ensure we’re testing “clu.testing.utils.countfiles” in the inline test suite. [Alexander Böhn]

* Rewrote the “NamespaceWalkerViewBase.__len__()” implementation ... to use “clu.typology.iterlen(…)” and a generator expression, rather than for-looping with an index variable (how gouche!) [Alexander Böhn]

* Further adventures in mature optimization ... this time it’s a corresponding “NamespaceWalkerKeysView” type, and a new intermediate abstract sub-base for all the new view types that provides a less näive “__len__()” method. [Alexander Böhn]

* Docstring for the internal “startswith_ns(…)” helper function. [Alexander Böhn]

* Sometimes, you want seperate “__new__(…)” and “__init__(…)” funcs. [Alexander Böhn]

* Whitespace. [Alexander Böhn]

* Exporting the “clu.config.defg.envwalk(…)” helper function. [Alexander Böhn]

* Gratuitous logic simplification in inline-testing’s inline tests. [Alexander Böhn]

* Updating the primary “inline” docstring. [Alexander Böhn]

* Revised the inline test decorator mechanism ... to wit: it is now implemented as a class that is instanced automatically via module ‘__getattr__(…)’ each time it is requested for import ... this makes managing the stopwatch instances and the decorated functions, as instance attributes, way way easier ... plus it eliminates the need for the clunky “vars()” argument to all the “inline.test()” calls ... a few other revisions were made during these changes (most notably the elimination of the “collection phase” in the main stopwatch report – but that was kind of stupid anyway) [Alexander Böhn]

0.5.1

Add

* Added baseline environment-variable-access function API ... also differentiated the testing of the “old-style” Flat and Nested classes, versus the new shit. [Alexander Böhn]

* Added a “FrozenNested.mapwalk()” method, delegates to “mapwalk(…)” [Alexander Böhn]

* Added namespaced “KeyMap.pop(…)” and “KeyMap.clear(…)” [Alexander Böhn]

* Added a test illustrating “try_items(…)” particular behavior ... w/r/t DefaultDict factories and “getitem(…)” [Alexander Böhn]

Other

* Bump version: 0.5.0 → 0.5.1. [Alexander Böhn]

* Actual inline tests for inline and friends. [Alexander Böhn]

* More inane dev-ish comments. [Alexander Böhn]

* Const-correct Craving. [Alexander Böhn]

* Developer-facing comments about what the fuck is going on. [Alexander Böhn]

* Fixed time reporting for one-off execution of inline tests. [Alexander Böhn]

* Killed a lot of dead code. [Alexander Böhn]

* Integrated ‘dbx-stopwatch’ with the inline test framework ... including a custom report-formatting function, as theirs is awful (and not like this one is much better but the need is there, and it’s something, OK?) ... inline tests auto-collect and run via local-variable mapping hook ”inline.test(«vars», [runcount])” ... a number of inline test suites were converted over to the new auto-collection API ... tweaked the requirements accordingly (N.B. this still needs some winnowing) [Alexander Böhn]

* Reorganized the “clu.config” testsuite ... moved all KeyMap-related tests to their own test class. [Alexander Böhn]

* Enabling last inline test. [Alexander Böhn]

* Nitpickery. [Alexander Böhn]

* Killed dead code. [Alexander Böhn]

* Docstrings and miscellany. [Alexander Böhn]

* Pure, unfiltered minutiae. [Alexander Böhn]

* Total minutiae. [Alexander Böhn]

* Being explicit about the class we’re using in the KeyMap env tests. [Alexander Böhn]

* Initial tests with new KeyMap-based environment access are GO. [Alexander Böhn]

* Simplifying some internal string-only comparisons. [Alexander Böhn]

* The very first of passing test runs WITH the new KeyMaps installed! ... getting to green on this involved finding and fixing a big-ish bug in the “compare_ns(…)” helper, which we use in implementing “Nested.__contains__(…)” and “Nested.__getitem__(…)” – dropping in “itertools.zip_longest(…)” therein in leu of a “zip(…)” call was the fortunately simple fix, once the flaw was discovered. ... We are using the new KeyMap classes in “clu.config.filebase” and all of the format definition modules e.g. ‘tomlfile’ &c. ... We were able to explicitly swap KeyMap ancestors in on at least one test – ‘test_nested_and_flat(¬)’ – wholesale with no issues (after squashing the big-ish bug of course). ... So yeah, here’s to many more! 🥂 [Alexander Böhn]

* Updated the REPL scripts for the new “clu.config” hot shit. [Alexander Böhn]

* Allowing keyword updates in “Flat” and “Nested” constructors. [Alexander Böhn]

* Gratuitous recursion added to “KeyMap.update(…)” [Alexander Böhn]

* One less import is one more fuck-yes in the pot ... you know, the fuck-yes pot. We all have one, somewhere. [Alexander Böhn]

* Another slight name disambiguation. [Alexander Böhn]

* Rewrote it again with a set comprehension. [Alexander Böhn]

* Rewrote “FrozenKeyMap.namespaces()” to suck a lot less. [Alexander Böhn]

* Faster still for the logic of “get_ns(…)” [Alexander Böhn]

* Another gratuitous function rename. [Alexander Böhn]

* Like I said. [Alexander Böhn]

* Since we aren’t worried about interstitial sequences anymore… ... we won’t need to expand iterable keys during namespace packing, like duh. [Alexander Böhn]

* Got rid of any naming ambiguity regarding keys, nskeys, and such. [Alexander Böhn]

* Minor simplification in “get_ns(…)” logic. [Alexander Böhn]

* Simplified the logic behind “FrozenNested.namespaces()” [Alexander Böhn]

* Same slight simplification in “FrozenKeyMap.submap(…)” logic. [Alexander Böhn]

* Slight simplification of the “KeyMap.clear(…)” logic. [Alexander Böhn]

* Simplified “KeyMap.pop(…)” logic. [Alexander Böhn]

* Moving disabled code. [Alexander Böhn]

* Disabling (for now) sequence expansion in nested trees. [Alexander Böhn]

* More professionalism. [Alexander Böhn]

* Making “FrozenNested.mapwalk()” look professional. [Alexander Böhn]

* Un-abstracting the “KeyMap.__reversed__(…)” method. [Alexander Böhn]

* “__contains__(…)” and “__iter__(…)” are abstract methods of “KeyMapViewBase” [Alexander Böhn]

* More flat/nested conversion test coverage. [Alexander Böhn]

* Testing roundtrip flatten-to-nestify and nestify-to-flatten. [Alexander Böhn]

* Removed sequence literals from nested sample data. [Alexander Böhn]

* The “mapwalk(…)” function includes sequence indexes. [Alexander Böhn]

* Compatibility stuff across the board for the new KeyMap API. [Alexander Böhn]

* Aaaaand BUNCHA DOCSTRINGS ... say it like Eddie Izzard saying “BUNCHA FLOWERS” in that bit that he did. [Alexander Böhn]

* Reworded that nota-benne. [Alexander Böhn]

* Bespoke namespace iterator function for “Nested” [Alexander Böhn]

* OK so the immutable namespacey rewrite of “clu.config.Nested” works. [Alexander Böhn]

* Logic notes for new REPL script. [Alexander Böhn]

* Inline test is the inliniest, testiest ever before seen. [Alexander Böhn]

* I give up, the KeyMap class tower is now ‘clu.abstract.Slotted’ ... like if this is a problem down the line doggie just stick in a ‘__dict__’ slot somewhere and everything’ll be A-OK, guaranteed. [Alexander Böhn]

* Moved “namespaces(…)” method up into ‘FrozenKeyMap’ [Alexander Böhn]

* I got your module exports, right over here within my pants. [Alexander Böhn]

* Well fuck – that actually worked pretty much the first time ... happy birthday to me, I guess, rite?? For reals dogg December the Fifth is my real actual birthday, so thank you, me, for conforming to the Me Coding Guidelines. [Alexander Böhn]

* And so commenceth the Great Re-Naming Of The Things. [Alexander Böhn]

* Trimmed disabled unprefixed-key-related code alternatives. [Alexander Böhn]

* Keyword API accomodations for retrieving views of unprefixed keys. [Alexander Böhn]

* Re-enabling “Flat.nestify(…)” [Alexander Böhn]

* Map-Walker™ [Alexander Böhn]

* Redoing the foundations of “clu.config.abc.NamespacedMutableMapping” [Alexander Böhn]

* Also made “clu.config.fieldtypes.__getattr__(…)” quiet down. [Alexander Böhn]

* The “qualified_name(…)” and “qualified_import(…)” fns are quieter ... they were, like, unnecessarily chatty there for a long while. [Alexander Böhn]

* Remove insecure Django requirement. [Alexander Böhn]

* Further fleshing out REPL script. [Alexander Böhn]

* Getting started on new REPL environment script. [Alexander Böhn]

* Tweaked a method name in “clu.dicts.ChainMap” ... specifically it is now “mapcontaining” instead of “mapcontains” [Alexander Böhn]

* Whitespace. [Alexander Böhn]

* One other spot where our ChainMaps and their ChainMaps may meet. [Alexander Böhn]

* Our ChainMap will take our ChainMaps and their ChainMaps too. [Alexander Böhn]

* Made “clu.naming.qualified_import(…)” work with just module names ... versus qualified-thing-names, which was what specifically it was expecting previously. [Alexander Böhn]

* I like “delattr(…)” more than “del «…»” [Alexander Böhn]

* WHOOOOPS. [Alexander Böhn]

* Setting importlib-metadata requirement in stone. [Alexander Böhn]

* Minor bpython REPL script update. [Alexander Böhn]

* HAAAAAACK ... until I summon the werewithall to do some kind of stem/leaf type of analysis or property or whatever the fuck – this total hackjob bullshit will do (and it actually is kind of totally effective for like the near-forseeable future actually, yeah) [Alexander Böhn]

* Iterchaining those “dir(…)” lists ahead-of-time ... Minimum waaaaaaaaaaage »¡HIYAAA!« [SFX: whip-crack] [Alexander Böhn]

* True paranoia ... I just remembered I read somewhere that “__init__(…)” methods are not guaranteed to run only once, and might run a couple of times just for shits ‘n’ giggles. [Alexander Böhn]

* Plugging yet another microsecond-in-diameter hole. [Alexander Böhn]

* Storing “__dir__(…)” results for ProxyModule’s “__dir__(…)” impl ... Also, I like ‘delattr(…)’ more than ‘del «thing»’ – the latter of which looks way too nondeterministic by association and also more problematically loosey-goosey like in general. [Alexander Böhn]

* Explicit, I am told, brings more general joy than (say) implicit ... I dunno whether premature optimization is better or more joyful or nicer or what-have-you than other kinds of optimization but you are getting those in this diff too whether you like it or not, doggie, OK? OK. [Alexander Böhn]

* Fixed possible race condition in “ProxyModule.__getattr__(…)” ... “ProxyModule._executed” could be True for like one or maybe two frames of interpreter execution during which the initialization mapping list “ProxyModule.target_dicts” still existed, which could short-circuit attribute-access for like half a frame more after calling for the deletion of the list – this is probably minute enough to qualify this diff as “premature optimization” – or “obsessive-compulsive flow control”, either-or – but I do not care as it is far more satisfying to have unfucked it than it’d be to leave it sitting there all fucked and such. [Alexander Böhn]

* Culling ‘sys.modules’ on “clu.importing.Registry.unregister(…)” ... fucking finally. [Alexander Böhn]

* Got rid of the ‘SubModule(…)’ class-module context-manager – ... it was waaaay more trouble than it was worth ... also stopped merging proxied modules’ exporters into the proxy module’s exporter – this was wreaking havoc with “nameof(…)” and “moduleof(…)” search-component mechanisms; ... INSTEAD we are simply leaving proxy-module exporters to work as they would normally – like e.g. on stuff explicitly defined therein – and using an overridden “ProxyModule.__dir__(…)” to get the job done. [Alexander Böhn]

* Module-importing “clu.constants.consts” instead of cherry-picking. [Alexander Böhn]

Page 1 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.