Todo list

Todo

Write documentation.

(The original entry is located in /home/travis/build/niftools/pyffi/pyffi/spells/cgf/__init__.py:docstring of pyffi.spells.cgf, line 4.)

Todo

Limit the size of shapes (see operation optimization mod for Oblivion!)

(The original entry is located in /home/travis/build/niftools/pyffi/pyffi/spells/nif/optimize.py:docstring of pyffi.spells.nif.optimize.SpellOptimizeGeometry.branchentry, line 8.)

Todo

  • Write dedicated utilities to optimize particular games (start with Oblivion, maybe eventually also do Fallout 3, Morrowind, etc.).

(The original entry is located in TODO.rst, line 3.)

Todo

Aion caf format (MtlNameChunk header?).

(The original entry is located in TODO.rst, line 9.)

Todo

refactoring plans

  • what’s up with get_global_child_names?

  • common base classes for pyffi.object_models.xml.basic.BasicBase/StructBase and pyffi.object_models.xsd.SimpleType/ComplexType (e.g. pyffi.ObjectModel.SimpleType/ComplexType)

  • derive object_models.array_type and object_models.StructType from common subclass pyffi.object_models.ComplexType, use these then as base classes for object_models.xml.array and object_models.xml.struct_.StructBase

  • use pyffi.utils.graph for all object_models.XXX implementations

  • upgrade QSkope and XML model to use GlobalNode instead of the current ad hoc system with Refs

  • improve the abstract object_models.Delegate classes (i.e. naming, true abstract base classes, defining a common interface); also perhaps think about deriving these delegate classes from TreeLeaf (only leafs have editors!)?

  • ditch version and user_version from the object_models interface, and instead use object_models.Data as a global root element that contains all file information with a minimal format independent interface; implementation plan (this is already partially implemented, namely in the nif format):

    • use abstract Data and Tree base classes fo the XSD parser, in subsequent 2.x.x releases
    • update the XML parser to follow the same scheme, when switching from 2.x.x to 3.0.0, and document the 2.x.x -> 3.0.0 migration strategy
    • deprecate the old methods (XxxFormat.read, XxxFormat.write, XxxFormat.getVersion, and so on) in 3.x.x
    • remove old method in 4.x.x
  • one of the aims is that qskope no longer relies on any object_models.xml/object_models.xsd specific implementations; if it only relies on the abstract base classes in object_models.Graph and object_models.Data then future expansions are a lot easier to cope with; in particular, qskope should never have to import from object_models.XXX, or Formats.XXX

(The original entry is located in TODO.rst, line 13.)

Todo

Doctests for all spells.

(The original entry is located in TODO.rst, line 62.)

Todo

Improve overall documentation, for instance:

  • add docstrings for all spells
  • add docstrings for all spell methods

(The original entry is located in TODO.rst, line 66.)

Todo

  • move all regression tests to the tests directory (but keep useful examples in the docstrings!)
  • add spell support for qskope directly using the pyffi.spells module
  • allow qskope to create new spells, from a user supplied spells module
    • custom spell module creation wizard (creates dir structure for user and stores it into the configuration)
    • custom spell creation wizard (adds new spell to user’s spell module)
    • automatic templates for typical spells
  • pep8 conventions
    • resolve all complaints from cheesecake’s pep8 checker

(The original entry is located in TODO.rst, line 73.)

Todo

  • Write dedicated utilities to optimize particular games (start with Oblivion, maybe eventually also do Fallout 3, Morrowind, etc.).

Todo

Aion caf format (MtlNameChunk header?).

Todo

refactoring plans

  • what’s up with get_global_child_names?

  • common base classes for pyffi.object_models.xml.basic.BasicBase/StructBase and pyffi.object_models.xsd.SimpleType/ComplexType (e.g. pyffi.ObjectModel.SimpleType/ComplexType)

  • derive object_models.array_type and object_models.StructType from common subclass pyffi.object_models.ComplexType, use these then as base classes for object_models.xml.array and object_models.xml.struct_.StructBase

  • use pyffi.utils.graph for all object_models.XXX implementations

  • upgrade QSkope and XML model to use GlobalNode instead of the current ad hoc system with Refs

  • improve the abstract object_models.Delegate classes (i.e. naming, true abstract base classes, defining a common interface); also perhaps think about deriving these delegate classes from TreeLeaf (only leafs have editors!)?

  • ditch version and user_version from the object_models interface, and instead use object_models.Data as a global root element that contains all file information with a minimal format independent interface; implementation plan (this is already partially implemented, namely in the nif format):

    • use abstract Data and Tree base classes fo the XSD parser, in subsequent 2.x.x releases
    • update the XML parser to follow the same scheme, when switching from 2.x.x to 3.0.0, and document the 2.x.x -> 3.0.0 migration strategy
    • deprecate the old methods (XxxFormat.read, XxxFormat.write, XxxFormat.getVersion, and so on) in 3.x.x
    • remove old method in 4.x.x
  • one of the aims is that qskope no longer relies on any object_models.xml/object_models.xsd specific implementations; if it only relies on the abstract base classes in object_models.Graph and object_models.Data then future expansions are a lot easier to cope with; in particular, qskope should never have to import from object_models.XXX, or Formats.XXX

Todo

Doctests for all spells.

Todo

Improve overall documentation, for instance:

  • add docstrings for all spells
  • add docstrings for all spell methods

Todo

  • move all regression tests to the tests directory (but keep useful examples in the docstrings!)
  • add spell support for qskope directly using the pyffi.spells module
  • allow qskope to create new spells, from a user supplied spells module
    • custom spell module creation wizard (creates dir structure for user and stores it into the configuration)
    • custom spell creation wizard (adds new spell to user’s spell module)
    • automatic templates for typical spells
  • pep8 conventions
    • resolve all complaints from cheesecake’s pep8 checker