Skip to content

lyft/pynamodb-attributes

Folders and files

NameName
Last commit message
Last commit date
Aug 26, 2022
May 17, 2024
May 17, 2024
Jul 9, 2021
Mar 12, 2024
Dec 19, 2018
Dec 19, 2018
Dec 19, 2018
Dec 19, 2018
Mar 12, 2024
Aug 15, 2022
May 17, 2024
Aug 26, 2022

Repository files navigation

This Python 3 library contains compound and high-level PynamoDB attributes:

  • FloatAttribute – same as NumberAttribute but whose value is typed as float
  • IntegerAttribute – same as NumberAttribute but whose value is typed as int (rather than float)
  • IntegerSetAttribute – same as NumberSetAttribute but whose value is typed as int (rather than float)
  • UnicodeDelimitedTupleAttribute - a delimiter-separated value, useful for storing composite keys
  • UnicodeEnumAttribute - serializes a string-valued Enum into a Unicode (S-typed) attribute
  • UnicodeProtobufEnumAttribute - serializes a Protobuf enum into a Unicode (S-typed) attribute
  • IntegerEnumAttribute - serializes a int-valued Enum into a number (N-typed) attribute
  • TimedeltaAttribute, TimedeltaMsAttribute, TimedeltaUsAttribute – serializes timedeltas as integer seconds, milliseconds (ms) or microseconds (µs)
  • TimestampAttribute, TimestampMsAttribute, TimestampUsAttribute – serializes datetimes as Unix epoch seconds, milliseconds (ms) or microseconds (µs)
  • IntegerDateAttribute - serializes date as an integer representing the Gregorian date (e.g. 20181231)
  • UUIDAttribute - serializes a UUID Python object as a S type attribute (e.g. 'a8098c1a-f86e-11da-bd1a-00112444be1e')
  • UnicodeDatetimeAttribute - ISO8601 datetime strings with offset information

Testing

The tests in this repository use an in-memory implementation of dynamodb. To run the tests locally, make sure DynamoDB Local is running. It is available as a standalone binary, through package managers (e.g. Homebrew) or as a Docker container:

docker run -d -p 8000:8000 amazon/dynamodb-local

Afterwards, run tests as usual:

pytest tests