Skip to main content

Common utilities for MoveEV projects

Project description

MoveEV Common Models

This package contains the common models used for Electric Vehicle (EV) Charging Data across the MoveEV ecosystem.

Overview

The moveev_common package provides a set of standardized data models that represent various aspects of EV charging sessions, vehicle information, and location data. These models ensure consistency and interoperability between different components of the MoveEV platform.

Models

The package includes the following main models:

  1. ChargingEvent: Represents individual charging events with detailed metrics including:

    • Charging duration and timestamps
    • Energy consumed (kWh)
    • Voltage and current measurements (milli-volts, milli-amps)
    • Location data (lat/long)
    • Provider-specific information
    • Start/end energy measurements (micro-watt-hours)
    • Charging power (kilowatts)
  2. ChargingStat: Tracks real-time charging statistics including:

    • State of charge (milli-percent)
    • Charging voltage and current
    • Energy consumption
    • Location data
    • Odometer readings (meters)
    • Vehicle telemetry
  3. Vehicle: Contains vehicle information including:

    • VIN number
    • Telematics device details (ID, hardware ID, name)
    • Credential associations
    • Creation and update timestamps
    • Additional metadata (JSONB)
  4. Credential: Manages authentication and access credentials for:

    • Various charging providers
    • Telematics systems
    • API integrations
    • Username/password pairs
    • Database connections
  5. Client: Manages client application information including:

    • Client name
    • Authentication token
    • Service associations
  6. ClientService: Manages client service configurations including:

    • Client associations
    • Service endpoints
    • Event logging relationships
  7. Service: Defines available services including:

    • Service name
    • Service URL
    • Integration endpoints
  8. EventLog: Tracks event notifications including:

    • Charging event references
    • Client service associations
    • Timestamp information
    • Delivery status
  9. LastRunTime: Tracks service execution times including:

    • Credential associations
    • Job name
    • Last execution timestamp
  10. Location: Represents geographical location data including:

    • Latitude and longitude
    • Resolved address information
    • Associated charging events

Usage

These models can be imported and used in various MoveEV projects to ensure consistent data structures when working with EV charging data. They provide a common language for different components of the system to communicate and share information effectively.

Contributing

When adding new fields or modifying existing models, please ensure that changes are reflected across all relevant components of the MoveEV ecosystem to maintain consistency.

For more detailed information about each model and its fields, please refer to the source code and inline documentation.

Database Migrations

Generating Migrations

  1. Make your model changes in the appropriate files under src/moveev_common/. For example, to add new fields to a model:

    class Credential(Base):
        # ... existing fields ...
        session_id = Column(String)
        session_expiry = Column(DateTime)
    
  2. Activate your virtual environment:

    source .venv/bin/activate
    
  3. Generate the migration script:

    alembic revision --autogenerate -m "description of your changes"
    

    This will create a new migration file in the alembic/versions/ directory.

  4. Review the generated migration file to ensure it correctly captures your changes. The file will be named something like 1234abcd_description_of_your_changes.py.

  5. If the migration looks correct, proceed to running the migration as described below.

To run database migrations:

Running Migrations

Local Development

alembic -x environment=local upgrade head

Production

alembic -x environment=production upgrade head

Make sure your .env file contains both sets of database credentials:

  • POSTGRES_USER
  • POSTGRES_PASSWORD
  • POSTGRES_HOST
  • POSTGRES_PORT
  • POSTGRES_DB

AND

  • POSTGRES_USER_PRODUCTION
  • POSTGRES_PASSWORD_PRODUCTION
  • POSTGRES_HOST_PRODUCTION
  • POSTGRES_PORT_PRODUCTION
  • POSTGRES_DB_PRODUCTION

Package Deployment

To update and deploy this package to PyPI, follow these steps:

  1. Update version numbers in both configuration files:

    # pyproject.toml
    version = "x.y.z"
    
    # setup.cfg
    version = x.y.z
    
  2. Build the package:

    python3.10 -m build
    
  3. Upload to PyPI:

    python3.10 -m twine upload dist/*
    

Note: Make sure you have the required credentials and permissions to upload to PyPI. You'll need to have build and twine packages installed, and a token for the PyPI repository:

pip install build twine

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

moveev_common-0.2.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

moveev_common-0.2.0-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file moveev_common-0.2.0.tar.gz.

File metadata

  • Download URL: moveev_common-0.2.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.16

File hashes

Hashes for moveev_common-0.2.0.tar.gz
Algorithm Hash digest
SHA256 814ae475f95e895b36325c76df67306290a72a09f69a21f021f506b225b81bd3
MD5 ce55f8a4aea5ab247263deab7eb8f6b2
BLAKE2b-256 82db569701a2c9899babd4b13b8ce56dc89a103083348dd76f048dd36522767c

See more details on using hashes here.

File details

Details for the file moveev_common-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: moveev_common-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.16

File hashes

Hashes for moveev_common-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c710e6740e1e52f118e7db036144568950525d05b2e5bd9f720665648c30915b
MD5 256a9f43e5cae4fd20bec115eb0a78ef
BLAKE2b-256 15912546cc2d85ab64b48bd0dd20ab4f8ad71861fb133617cd23109b0afa0773

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page