### Navigation

- index
- modules |
- next |
- previous |
- Dev's documentation »
- SoL modules »
- `sol.models` – SQLAlchemy modelization »

# `sol.models.utils` – Utilities

Simple helper functions.

`sol.models.utils.``asunicode`(s)

  Force a string to be a unicode instance.

  Parameters: | s – any value
  Return type: | str

  If s is not already an unicode string, it is assumed it’s an `utf-8` encoded string, a thus converted to unicode and returned. Otherwise s is returned as is:

      >>> assert asunicode(None) is None
      >>> assert not isinstance(asunicode(b'ascii'), bytes)

`sol.models.utils.``normalize`(s, title=None)

  Normalize the case of a string, removing spurious spaces.

  Parameters: | s – a string title – if True always titleize the string, if False never do that, if None (default) only when the input string is all lower case or all upper case
  Return type: | unicode

      >>> assert normalize(None) is None
      >>> print(normalize('lele gaifax'))
      Lele Gaifax
      >>> print(normalize('LELE'))
      Lele
      >>> print(normalize('LeLe', title=False))
      LeLe

`sol.models.utils.``njoin`(elts, stringify=<function asunicode at 0x7f4f141a1710>, localized=True)

  Given a sequence of items, concatenate them in a nice way.

  Parameters: | elts – a sequence of elements stringify – the stringification function applied to all elements, by default coerced to unicode localized – a boolean flag to disable the translation of the final ‘and’
  Return type: | unicode

  If elts is empty returns an empty unicode string; if it contains a single element, returns the stringified element; otherwise returns a unicode string composed by all but the last elements stringified and joined by a comma, followed by the localized version of and followed by the last element stringified:

      >>> print(njoin([1,2,3]))
      1, 2 and 3
      >>> print(njoin([1,2]))
      1 and 2
      >>> print(njoin([1]))
      1
      >>> assert njoin([]) == ''
      >>> print(njoin([1,2], stringify=lambda x: str(x*10)))
      10 and 20

`sol.models.utils.``entity_from_primary_key`(pkname)

  Given the name of a primary key, return the mapped entity.

  Parameters: | pkname – the name of a primary key
  Return type: | a mapped class

`sol.models.utils.``table_from_primary_key`(pkname)

  Given the name of a primary key, return the related table.

  Parameters: | pkname – the name of a primary key
  Return type: | a SQLAlchemy table

### Navigation

- index
- modules |
- next |
- previous |
- Dev's documentation »
- SoL modules »
- `sol.models` – SQLAlchemy modelization »