From: Donnal W. <don...@ya...> - 2002-07-19 18:13:08
|
In the process of rewriting my Python-based toolkit to better reflect the YAML information model, I have decided to rename my base classes for the three kinds of nodes (obviously: scalars, mappings and sequences). Of course I could simply use these terms, but would anyone see a problem with using the following names? class Cell(object): pass # base class for all scalar nodes class Map(object): pass # base class for all mapping nodes class List(object): pass # base class for all sequence nodes I am pretty well stuck on 'Cell' for scalar nodes, but for mapping nodes I am also considering 'Model' or 'Schema' as alternatives. For sequence nodes I still like 'List', but don't want to cause confusion with the native Python 'list' type/class. BTW, all of my class names are CapWords. I understand that naming conventions such as these are largely a matter of personal taste, but I plan to live with this naming scheme for a long time and hope that others find it helpful at some point as well, so any feedback would be welcome. ===== Donnal Walter Arkansas Children's Hospital __________________________________________________ Do You Yahoo!? Yahoo! Autos - Get free new car price quotes http://autos.yahoo.com |
From: Steve H. <sh...@zi...> - 2002-07-19 18:18:36
|
----- Original Message ----- From: "Donnal Walter" <don...@ya...> > I am pretty well stuck on 'Cell' for scalar nodes, but for mapping > nodes I am also considering 'Model' or 'Schema' as alternatives. I like "Map" better. "Schema" and "Model" have broader connotations to me than Python dictionaries. In particular, "schema" could refer to a metadata file that describe the structure of your YAML document. Brian Ingerson, Ryan King, and I have done some work with schema-driven web interfaces, where the schemas are specified in YAML, and the data itself is displayed in YAML. But that's another subject. :) |
From: Clark C . E. <cc...@cl...> - 2002-07-19 18:23:06
|
On Fri, Jul 19, 2002 at 02:18:07PM -0400, Steve Howell wrote: | From: "Donnal Walter" <don...@ya...> | > I am pretty well stuck on 'Cell' for scalar nodes, but for mapping | > nodes I am also considering 'Model' or 'Schema' as alternatives. | | I like "Map" better. "Schema" and "Model" have broader connotations If you are going to use "List", I'd suggest "Dict" as dictionary is python's mapping type. Best, Clark |
From: Donnal W. <don...@ya...> - 2002-07-19 18:51:30
|
[Clark C . Evans] > If you are going to use "List", I'd suggest "Dict" as dictionary > is python's mapping type. Yes, I considered that possibility, but while "List" is a true Python list, "Map" is not a Python dictionary, except that the mapping uses the object's built-in self.__dict__ attribute. My original notation was incorrect. It should have been: class Cell(object): pass # base class for all scalar nodes class Map(object): pass # base class for all mapping nodes class List(list): pass # base class for all sequence nodes List does inherit from the built-in type "list", but Map and Cell inherit from "object" (making all three new-style classes). The main difference is that Map uses dot notation for node access, while a true dict would use brackets. problem.medication[0].dose.units.Get() # with Map as it is problem[medication[0]][dose][units].Get() # with Map(dict): pass [Steve Holden] > I like "Map" better. "Schema" and "Model" have broader > connotations to me than Python dictionaries. In > particular, "schema" could refer to a metadata file > that describe the structure of your YAML document. Yes, I agree that "Schema" and "Model" conjure up broader concepts for me too. In reality, my data/document schema will be written in Python. YAML would work well to describe the the composition hierarchy, but the elaborate inheritance hierarchy would be a problem. ===== Donnal Walter Arkansas Children's Hospital __________________________________________________ Do You Yahoo!? Yahoo! Autos - Get free new car price quotes http://autos.yahoo.com |