E&S CVS Commit: pylib - YAGR.3 - Y.A.Great Refactoring, Part 3: Aspects die, Components are Born

pje at eby-sarna.com pje at eby-sarna.com
Sun Jun 3 13:37:00 EDT 2001


Module Name:	pylib
Committed By:	pje
Date:		Sun Jun  3 17:36:21 UTC 2001

Modified Files:
	pylib/TW/StructuralModel: Features.py InMemory.py Queries.py
	    _Aspects.py
	pylib/TW/UML: MMX.py Model.py
	pylib/TW/XMI: Reading.py
	pylib/TW/tests: __init__.py
	pylib/TW/tests/StructuralModel: _Aspects.py
Added Files:
	pylib/TW: Components.py
	pylib/TW/tests: Components.py
Removed Files:
	pylib/TW: Aspects.py
	pylib/TW/tests: Aspects.py

Log Message:
YAGR.3 - Y.A.Great Refactoring, Part 3: Aspects die, Components are Born

TW.Aspects is now TW.Components, and bears little resemblance to its former
self.  Everything is now organized along the "build components to
specifications" metaphor (with the slightly incongruous notions of
Catalyst, Recipe, and Template also present).  The interfaces and docs have
been thoroughly revamped (although still far from complete, IMHO), along
with the test suites where applicable.

Some highlights of this revision:

* Recipe('package.module.object','package.module:object.subobject') --
  recipes can be used to build stuff easily, with dynamically imported
  specifications as their "ingredients".

* Ref('some.name.within.the.specification.tree') -- simple delayed binding
  operator, usable as a base class in a specification, or as a

* Eval('expression') -- was FeatureExpression(), now is less verbose.

* Template(name,bases,dict) -- replaces AspectObject (or _Aspect in the 0.1
  preview release) as the class for programmatically creating
  specifications.

* Catalyst -- base class for things which transform specifications when
  used as a mixin to the specification.

* Singletons now work even when a component is reused as a specification.

Several minor bugs were also stomped.


To view diffs of this commit, you can use the following URL(s):
http://cvs.eby-sarna.com/pylib/TW/Components.py?rev=1.1&content-type=text/vnd.viewcvs-markup
http://cvs.eby-sarna.com/pylib/TW/StructuralModel/Features.py.diff?r1=1.5&r2=1.6
http://cvs.eby-sarna.com/pylib/TW/StructuralModel/InMemory.py.diff?r1=1.3&r2=1.4
http://cvs.eby-sarna.com/pylib/TW/StructuralModel/Queries.py.diff?r1=1.4&r2=1.5
http://cvs.eby-sarna.com/pylib/TW/StructuralModel/_Aspects.py.diff?r1=1.2&r2=1.3
http://cvs.eby-sarna.com/pylib/TW/UML/MMX.py.diff?r1=1.11&r2=1.12
http://cvs.eby-sarna.com/pylib/TW/UML/Model.py.diff?r1=1.5&r2=1.6
http://cvs.eby-sarna.com/pylib/TW/XMI/Reading.py.diff?r1=1.2&r2=1.3
http://cvs.eby-sarna.com/pylib/TW/tests/Components.py?rev=1.1&content-type=text/vnd.viewcvs-markup
http://cvs.eby-sarna.com/pylib/TW/tests/__init__.py.diff?r1=1.7&r2=1.8
http://cvs.eby-sarna.com/pylib/TW/tests/StructuralModel/_Aspects.py.diff?r1=1.8&r2=1.9

To generate a diff of this commit:
cvs rdiff -r1.13 -r0 pylib/TW/Aspects.py
cvs rdiff -r0 -r1.1 pylib/TW/Components.py
cvs rdiff -r1.5 -r1.6 pylib/TW/StructuralModel/Features.py
cvs rdiff -r1.3 -r1.4 pylib/TW/StructuralModel/InMemory.py
cvs rdiff -r1.4 -r1.5 pylib/TW/StructuralModel/Queries.py
cvs rdiff -r1.2 -r1.3 pylib/TW/StructuralModel/_Aspects.py
cvs rdiff -r1.11 -r1.12 pylib/TW/UML/MMX.py
cvs rdiff -r1.5 -r1.6 pylib/TW/UML/Model.py
cvs rdiff -r1.2 -r1.3 pylib/TW/XMI/Reading.py
cvs rdiff -r1.6 -r0 pylib/TW/tests/Aspects.py
cvs rdiff -r0 -r1.1 pylib/TW/tests/Components.py
cvs rdiff -r1.7 -r1.8 pylib/TW/tests/__init__.py
cvs rdiff -r1.8 -r1.9 pylib/TW/tests/StructuralModel/_Aspects.py

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.





More information about the source-changes mailing list