olca.units API documentation

# Module `olca.units`

Expand source code

    import csv
    import os.path as path

    from typing import Optional

    import olca

    _unit_refs = None
    _group_refs = None
    _prop_refs = None

    def _init():
        global _unit_refs, _group_refs, _prop_refs
        _unit_refs = {}
        _group_refs = {}
        _prop_refs = {}

        fpath = path.join(path.dirname(__file__), 'units.csv')
        with open(fpath, 'r', encoding='utf-8') as f:
            r = csv.reader(f)
            next(r)
            for row in r:
                unit = row[0]
                _unit_refs[unit] = olca.ref(olca.Unit, row[1], unit)
                _group_refs[unit] = olca.ref(olca.UnitGroup, row[3], row[2])
                _prop_refs[unit] = olca.ref(olca.FlowProperty, row[5], row[4])

    def unit_ref(symbol: str) -> Optional[olca.Ref]:
        """Get the unit reference (an instance of olca.Ref) for the given unit
           symbol (a string like 'kg'). Returns `None` if the given unit is
           unknown."""
        if _unit_refs is None:
            _init()
        return _unit_refs.get(symbol)

    def group_ref(symbol: str) -> Optional[olca.Ref]:
        """Get the unit group reference (an instance of olca.Ref) for the given
           unit symbol (a string like 'kg'). Returns `None` if the given unit is
           unknown."""
        if _group_refs is None:
            _init()
        return _group_refs.get(symbol)

    def property_ref(symbol: str) -> Optional[olca.Ref]:
        """Get the reference (an instance of olca.Ref) to the default flow property
           (quantity) for the given unit symbol (a string like 'kg'). Returns
           `None` if the given unit is unknown."""
        if _prop_refs is None:
            _init()
        return _prop_refs.get(symbol)

## Functions

`def group_ref(symbol: str) ‑> Optional[Ref]`

  Get the unit group reference (an instance of olca.Ref) for the given unit symbol (a string like 'kg'). Returns `None` if the given unit is unknown.

  Expand source code

      def group_ref(symbol: str) -> Optional[olca.Ref]:
          """Get the unit group reference (an instance of olca.Ref) for the given
             unit symbol (a string like 'kg'). Returns `None` if the given unit is
             unknown."""
          if _group_refs is None:
              _init()
          return _group_refs.get(symbol)

`def property_ref(symbol: str) ‑> Optional[Ref]`

  Get the reference (an instance of olca.Ref) to the default flow property (quantity) for the given unit symbol (a string like 'kg'). Returns `None` if the given unit is unknown.

  Expand source code

      def property_ref(symbol: str) -> Optional[olca.Ref]:
          """Get the reference (an instance of olca.Ref) to the default flow property
             (quantity) for the given unit symbol (a string like 'kg'). Returns
             `None` if the given unit is unknown."""
          if _prop_refs is None:
              _init()
          return _prop_refs.get(symbol)

`def unit_ref(symbol: str) ‑> Optional[Ref]`

  Get the unit reference (an instance of olca.Ref) for the given unit symbol (a string like 'kg'). Returns `None` if the given unit is unknown.

  Expand source code

      def unit_ref(symbol: str) -> Optional[olca.Ref]:
          """Get the unit reference (an instance of olca.Ref) for the given unit
             symbol (a string like 'kg'). Returns `None` if the given unit is
             unknown."""
          if _unit_refs is None:
              _init()
          return _unit_refs.get(symbol)