Skip to content

sweetrpg/library-objects

Repository files navigation

sweetrpg-library-objects

Unit tests Coverage PyPI version License Issues PRs Dependabot

Python Built with love

Model package for library applications.

Models

Person

  • Fields
    • name: String. The name of the person.
    • tag_ids: [Tag]. An array of tags associated with the author.
    • Audit fields.

PersonProperty

  • Fields
    • name: String. The name of the property.
    • type: String. The type of the property's value.
    • value: String. The value of the property.
    • person_id: Volume. The identifier of the person associated with the property.
    • Audit fields.

Publisher

  • Fields

Review

  • Fields
    • title: String. The title of the review.
    • text: String. The body text of the review.
    • volume_id: Volume. The volume associated with the review.
    • Audit fields.

Studio

  • Fields

System

  • Fields
    • game_system: String. The identifier of the game system.
    • edition: String. The identifier of the game system's edition.
    • Audit fields.

Tag

  • Fields
    • name: String. The name of the tag.
    • value: String. The optional value of the tag.
    • Audit fields.

Contribution

  • Fields
    • person_id: Person. Identifier of the Person making the contribution
    • roles: [Enum{ContributionType}]. An array of contribution types for this person. Valid values are: designer, developer, writer, artist, cartographer, editor, producer, consultant, director, illustrator, misc.
    • Audit fields.

Volume

  • Fields
    • name: String. The name of the volume.
    • contributors: [Contribution]. An array of contributions for the volume, indicating a person and their contribution(s) to the volume.
    • studio_ids: [Studio]. An array of studios associated with the volume.
    • publisher_ids: [Publisher]. An array of publishers associated with the volume.
    • system_id: System. The game system associated with the volume.
    • review_ids: [Review]. An array of reviews associated with the volume.
    • tag_ids: [Tag]. An array of tags associated with the volume.
    • Audit fields.

VolumeProperty

  • Fields
    • name: String. The name of the property.
    • type: String. The type of the property's value.
    • value: String. The value of the property.
    • volume_id: Volume. The identifier of the volume associated with the property.
    • Audit fields.

Development

  1. Create a virtual environment
    python -m venv ~/.virtualenvs/sweetrpg-library-objects
    source ~/.virtualenvs/sweetrpg-library-objects/bin/activate
  2. Install requirements
    pip3 install -r requirements/dev.txt

Requirements

Requirements are organized in a number of role-based files in the requirements/ directory:

  • dev.{in,txt} -- for project development
  • pkg.{in,txt} -- for the package itself
  • docs.{in,txt} -- to generate documentation
  • tests.{in,txt} -- to run unit tests

Updating requirements

To update requirements, edit the appropriate *.in file, then run the update.sh script in the same directory. The script will run pip-compile to generate the *.txt file with the actual resolved versions and dependencies.

Documentation

Documentation for this package can be found here.