Wiki

Clone wiki

agatsuma / Definitions

Actual

  • Primitive is our implementation of some common programming conception (like atoms, constants, containers, sorting alghorithms, etcetera). Primitive implementation must not contain any imports of third-party libraries, or PEP implementations. Primitives must be placed at agatsuma.primitives.
  • Adaptation is set of small extensions to any external libraries. Something like our helper functions for Distribute. Adaptations must be placed at agatsuma.adaptations.libraryname.
  • Helper is stack object proxying access to some global entity (service for example) or small invariant function without side effects (function which converts string list to integers list is helper). This code may be placed at agatsuma.helpers namespace.
  • Third-party code is any code written by others that is INCLUDED into Agatsuma's code tree (something like distribute_setup.py or ActiveState recipes). This code must be placed at agatsuma.third_party namespace.
  • Implementation detail is any part of internal machinery which shouldn't be public visible (Enumerator, for example). This code should be placed at agatsuma.details namespace.
  • Service (example: logs and settings services)
  • Core
  • Masterspell
  • Entry point

Discussion

Different version:

  • Primitive/Elements is collection of our improvments of python standard tools(modules) and python itself. It's just a part of agatsuma project, which must be a independent package, new package like zope.interface. This code must be placed at agatsuma.primitive namespace and, in future, separated into egg with name agatsuma.provitive/privitives/elements.
  • Helpers. We have not helpers at now. spell_helpers will be moved into spellbook. setup_helpers must be moved into 3rt_party.
  • Third-party code is any code written by others OR for other libs compatibility, that is INCLUDED into Agatsuma's code tree (something like distribute_setup.py or ActiveState recipes). This code must be placed at agatsuma.third_party namespace.
  • Implementation detail. We dont need to hide implementation.
  • Core extension is spell-like module with logic, helpers, interfaces and spells for its working.
  1. We dont need to create new project development scheme.
  2. We dont need to create new project struct.
  3. We dont need to replace tech-english words with synonyms.
  4. We dont need to invent new groups or grouping style of code.

Updated