Skip to content

Commit

Permalink
rename /app to /amarillo
Browse files Browse the repository at this point in the history
changed amarillo.app to amarillo in Dockerfile and documentation

changed 'app' to 'amarillo' in readme and tests

added __init__.py to /amarillo
  • Loading branch information
Francia Csaba committed Jan 30, 2024
1 parent 5fd7171 commit 3bed37c
Show file tree
Hide file tree
Showing 52 changed files with 92 additions and 90 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -141,4 +141,5 @@ data/enhanced/
data/failed/
data/trash/
data/gtfs/
data/tmp

4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ EXPOSE 80
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt

COPY ./app /app/app
COPY ./amarillo /app/amarillo
COPY enhancer.py /app
COPY prestart.sh /app
COPY ./static /app/static
Expand All @@ -33,4 +33,4 @@ COPY logging.conf /app
COPY ./conf /app/conf

# This image inherits uvicorn-gunicorn's CMD. If you'd like to start uvicorn, use this instead
# CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
# CMD ["uvicorn", "amarillo.main:app", "--host", "0.0.0.0", "--port", "8000"]
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Create a virtual environment `python3 -m venv venv`.

Activate the environment and install the dependencies `pip install -r requirements.txt`.

Run `uvicorn app.main:app`.
Run `uvicorn amarillo.main:app`.

In development, you can use `--reload`.

Expand Down Expand Up @@ -44,23 +44,23 @@ Permissions work this way

### GTFS-RT python bindings

In case you modify or update the proto-files in app/proto, you'll need to regenerate the python bindings. First, create the python files:
In case you modify or update the proto-files in amarillo/proto, you'll need to regenerate the python bindings. First, create the python files:

```sh
$ cd app/proto
$ cd amarillo/proto
$ protoc --version
libprotoc 3.21.6
$ protoc --proto_path=. --python_out=../services/gtfsrt gtfs-realtime.proto realtime_extension.proto
$ sed 's/import gtfs_realtime_pb2/import app.services.gtfsrt.gtfs_realtime_pb2/g' ../services/gtfsrt/realtime_extension_pb2.py | sponge ../services/gtfsrt/realtime_extension_pb2.py
$ sed 's/import gtfs_realtime_pb2/import amarillo.services.gtfsrt.gtfs_realtime_pb2/g' ../services/gtfsrt/realtime_extension_pb2.py | sponge ../services/gtfsrt/realtime_extension_pb2.py
```

## Testing

In the top directory, run `pytest app/tests`.
In the top directory, run `pytest amarillo/tests`.

## Docker

Based on [tiangolo/uvicorn-gunicorn:python3.9-slim](https://github.com/tiangolo/uvicorn-gunicorn-docker)

- build `docker build -t amarillo .`
- run `docker run --rm --name amarillo -p 8000:80 -e ADMIN_TOKEN=$ADMIN_TOKEN -e RIDE2GO_TOKEN=$RIDE2GO_TOKEN -e TZ=Europe/Berlin -v $(pwd)/data:/app/data amarillo`
- run `docker run --rm --name amarillo -p 8000:80 -e MODULE_NAME=amarillo.main -e MAX_WORKERS="1" -e ADMIN_TOKEN=$ADMIN_TOKEN -e RIDE2GO_TOKEN=$RIDE2GO_TOKEN -e TZ=Europe/Berlin -v $(pwd)/data:/app/data amarillo`
1 change: 1 addition & 0 deletions amarillo/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
22 changes: 11 additions & 11 deletions app/configuration.py → amarillo/configuration.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# separate file so that it can be imported without initializing FastAPI
from app.utils.container import container
from amarillo.utils.container import container
import json
import logging
from glob import glob

from app.models.Carpool import Agency, Carpool, Region
from app.services import stops
from app.services import trips
from app.services.agencyconf import AgencyConfService, agency_conf_directory
from app.services.carpools import CarpoolService
from app.services.agencies import AgencyService
from app.services.regions import RegionService
from amarillo.models.Carpool import Agency, Carpool, Region
from amarillo.services import stops
from amarillo.services import trips
from amarillo.services.agencyconf import AgencyConfService, agency_conf_directory
from amarillo.services.carpools import CarpoolService
from amarillo.services.agencies import AgencyService
from amarillo.services.regions import RegionService

from app.services.config import config
from amarillo.services.config import config

from app.utils.utils import assert_folder_exists
import app.services.gtfs_generator as gtfs_generator
from amarillo.utils.utils import assert_folder_exists
import amarillo.services.gtfs_generator as gtfs_generator

logger = logging.getLogger(__name__)

Expand Down
6 changes: 3 additions & 3 deletions app/main.py → amarillo/main.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import logging.config

from app.configuration import configure_services, configure_admin_token
from amarillo.configuration import configure_services, configure_admin_token

logging.config.fileConfig('logging.conf', disable_existing_loggers=False)
logger = logging.getLogger("main")
Expand All @@ -9,11 +9,11 @@
import mimetypes
from starlette.staticfiles import StaticFiles

from app.routers import carpool, agency, agencyconf, region
from amarillo.routers import carpool, agency, agencyconf, region
from fastapi import FastAPI

# https://pydantic-docs.helpmanual.io/usage/settings/
from app.views import home
from amarillo.views import home

logger.info("Hello Amarillo!")

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
12 changes: 6 additions & 6 deletions app/routers/agency.py → amarillo/routers/agency.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

from fastapi import APIRouter, HTTPException, status, Depends

from app.models.Carpool import Carpool, Agency
from app.routers.agencyconf import verify_api_key, verify_admin_api_key, verify_permission_for_same_agency_or_admin
from amarillo.models.Carpool import Carpool, Agency
from amarillo.routers.agencyconf import verify_api_key, verify_admin_api_key, verify_permission_for_same_agency_or_admin
# TODO should move this to service
from app.routers.carpool import store_carpool, delete_agency_carpools_older_than
from app.services.agencies import AgencyService
from app.services.importing.ride2go import import_ride2go
from app.utils.container import container
from amarillo.routers.carpool import store_carpool, delete_agency_carpools_older_than
from amarillo.services.agencies import AgencyService
from amarillo.services.importing.ride2go import import_ride2go
from amarillo.utils.container import container
from fastapi.responses import FileResponse

logger = logging.getLogger(__name__)
Expand Down
8 changes: 4 additions & 4 deletions app/routers/agencyconf.py → amarillo/routers/agencyconf.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@

from fastapi import APIRouter, HTTPException, status, Header, Depends

from app.models.AgencyConf import AgencyConf
from app.services.agencyconf import AgencyConfService
from app.services.config import config
from app.utils.container import container
from amarillo.models.AgencyConf import AgencyConf
from amarillo.services.agencyconf import AgencyConfService
from amarillo.services.config import config
from amarillo.utils.container import container

logger = logging.getLogger(__name__)

Expand Down
6 changes: 3 additions & 3 deletions app/routers/carpool.py → amarillo/routers/carpool.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
from fastapi import APIRouter, Body, Header, HTTPException, status, Depends
from datetime import datetime

from app.models.Carpool import Carpool
from app.routers.agencyconf import verify_api_key, verify_permission_for_same_agency_or_admin
from app.tests.sampledata import examples
from amarillo.models.Carpool import Carpool
from amarillo.routers.agencyconf import verify_api_key, verify_permission_for_same_agency_or_admin
from amarillo.tests.sampledata import examples


logger = logging.getLogger(__name__)
Expand Down
8 changes: 4 additions & 4 deletions app/routers/region.py → amarillo/routers/region.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

from fastapi import APIRouter, HTTPException, status, Depends

from app.models.Carpool import Region
from app.routers.agencyconf import verify_admin_api_key
from app.services.regions import RegionService
from app.utils.container import container
from amarillo.models.Carpool import Region
from amarillo.routers.agencyconf import verify_admin_api_key
from amarillo.services.regions import RegionService
from amarillo.utils.container import container
from fastapi.responses import FileResponse

logger = logging.getLogger(__name__)
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion app/services/agencies.py → amarillo/services/agencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from glob import glob
from typing import Dict

from app.models.Carpool import Agency
from amarillo.models.Carpool import Agency

# TODO FG HB this service should also listen to pyinotify
# because the (updated) agencies are needed in the enhancer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

from fastapi import HTTPException, status

from app.models.AgencyConf import AgencyConf
from app.services.config import config
from amarillo.models.AgencyConf import AgencyConf
from amarillo.services.config import config

logger = logging.getLogger(__name__)

Expand Down
6 changes: 3 additions & 3 deletions app/services/carpools.py → amarillo/services/carpools.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
import logging
from datetime import datetime
from typing import Dict
from app.models.Carpool import Carpool
from app.services.trips import TripStore
from app.utils.utils import yesterday, is_older_than_days
from amarillo.models.Carpool import Carpool
from amarillo.services.trips import TripStore
from amarillo.utils.utils import yesterday, is_older_than_days

logger = logging.getLogger(__name__)

Expand Down
File renamed without changes.
6 changes: 3 additions & 3 deletions app/services/gtfs.py → amarillo/services/gtfs.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import app.services.gtfsrt.gtfs_realtime_pb2 as gtfs_realtime_pb2
import app.services.gtfsrt.realtime_extension_pb2 as mfdzrte
from app.services.gtfs_constants import *
import amarillo.services.gtfsrt.gtfs_realtime_pb2 as gtfs_realtime_pb2
import amarillo.services.gtfsrt.realtime_extension_pb2 as mfdzrte
from amarillo.services.gtfs_constants import *
from google.protobuf.json_format import MessageToDict
from google.protobuf.json_format import ParseDict
from datetime import datetime, timedelta
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
import logging
import re

from app.utils.utils import assert_folder_exists
from app.models.gtfs import GtfsTimeDelta, GtfsFeedInfo, GtfsAgency, GtfsRoute, GtfsStop, GtfsStopTime, GtfsTrip, GtfsCalendar, GtfsCalendarDate, GtfsShape
from app.services.stops import is_carpooling_stop
from app.services.gtfs_constants import *
from amarillo.utils.utils import assert_folder_exists
from amarillo.models.gtfs import GtfsTimeDelta, GtfsFeedInfo, GtfsAgency, GtfsRoute, GtfsStop, GtfsStopTime, GtfsTrip, GtfsCalendar, GtfsCalendarDate, GtfsShape
from amarillo.services.stops import is_carpooling_stop
from amarillo.services.gtfs_constants import *


logger = logging.getLogger(__name__)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from app.models.Carpool import Region
from app.services.gtfs_export import GtfsExport, GtfsFeedInfo, GtfsAgency
from app.services.gtfs import GtfsRtProducer
from app.utils.container import container
from amarillo.models.Carpool import Region
from amarillo.services.gtfs_export import GtfsExport, GtfsFeedInfo, GtfsAgency
from amarillo.services.gtfs import GtfsRtProducer
from amarillo.utils.container import container
from glob import glob
import json
import schedule
Expand Down
File renamed without changes.
File renamed without changes.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
from typing import List

import requests
from app.models.Carpool import Carpool, StopTime
from app.services.config import config
from amarillo.models.Carpool import Carpool, StopTime
from amarillo.services.config import config

from app.services.secrets import secrets
from amarillo.services.secrets import secrets
import re

logger = logging.getLogger(__name__)
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion app/services/regions.py → amarillo/services/regions.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from glob import glob
from typing import Dict

from app.models.Carpool import Region
from amarillo.models.Carpool import Region


class RegionService:
Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion app/services/stops.py → amarillo/services/stops.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import csv
import geopandas as gpd
import pandas as pd
from app.models.Carpool import StopTime
from amarillo.models.Carpool import StopTime
from contextlib import closing
from shapely.geometry import Point, LineString
from shapely.ops import transform
Expand Down
14 changes: 7 additions & 7 deletions app/services/trips.py → amarillo/services/trips.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from app.models.gtfs import GtfsTimeDelta, GtfsStopTime
from app.models.Carpool import MAX_STOPS_PER_TRIP, Carpool, Weekday, StopTime, PickupDropoffType
from app.services.config import config
from app.services.gtfs_constants import *
from app.services.routing import RoutingService, RoutingException
from app.services.stops import is_carpooling_stop
from app.utils.utils import assert_folder_exists, is_older_than_days, yesterday, geodesic_distance_in_m
from amarillo.services.config import config
from amarillo.models.gtfs import GtfsTimeDelta, GtfsStopTime
from amarillo.models.Carpool import MAX_STOPS_PER_TRIP, Carpool, Weekday, StopTime, PickupDropoffType
from amarillo.services.gtfs_constants import *
from amarillo.services.routing import RoutingService, RoutingException
from amarillo.services.stops import is_carpooling_stop
from amarillo.utils.utils import assert_folder_exists, is_older_than_days, yesterday, geodesic_distance_in_m
from shapely.geometry import Point, LineString, box
from geojson_pydantic.geometries import LineString as GeoJSONLineString
from datetime import datetime, timedelta
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from fastapi.testclient import TestClient
from app.main import app
from app.tests.sampledata import carpool_1234, data1
from amarillo.main import app
from amarillo.tests.sampledata import carpool_1234, data1

client = TestClient(app)

Expand Down
2 changes: 1 addition & 1 deletion app/tests/sampledata.py → amarillo/tests/sampledata.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from app.models.Carpool import Carpool, StopTime, Weekday
from amarillo.models.Carpool import Carpool, StopTime, Weekday

# TODO use meanigful values for id and lat, lon
stops_1234 = [
Expand Down
File renamed without changes.
File renamed without changes.
12 changes: 6 additions & 6 deletions app/tests/test_gtfs.py → amarillo/tests/test_gtfs.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from app.tests.sampledata import carpool_1234, data1, carpool_repeating_json, stop_issue
from app.services.gtfs_export import GtfsExport
from app.services.gtfs import GtfsRtProducer
from app.services.stops import StopsStore
from app.services.trips import TripStore
from app.models.Carpool import Carpool
from amarillo.tests.sampledata import carpool_1234, data1, carpool_repeating_json, stop_issue
from amarillo.services.gtfs_export import GtfsExport
from amarillo.services.gtfs import GtfsRtProducer
from amarillo.services.stops import StopsStore
from amarillo.services.trips import TripStore
from amarillo.models.Carpool import Carpool
from datetime import datetime
import time
import pytest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from app.services import stops
from app.models.Carpool import StopTime
from amarillo.services import stops
from amarillo.models.Carpool import StopTime

def test_load_stops_from_file():
store = stops.StopsStore([{"url": "app/tests/stops.csv", "vicinity": 50}])
store = stops.StopsStore([{"url": "amarillo/tests/stops.csv", "vicinity": 50}])
store.load_stop_sources()
assert len(store.stopsDataFrames[0]['stops']) > 0

Expand All @@ -17,7 +17,7 @@ def test_load_geojson_stops_from_web_():
assert len(store.stopsDataFrames[0]['stops']) > 0

def test_find_closest_stop():
store = stops.StopsStore([{"url": "app/tests/stops.csv", "vicinity": 50}])
store = stops.StopsStore([{"url": "amarillo/tests/stops.csv", "vicinity": 50}])
store.load_stop_sources()
carpool_stop = StopTime(name="start", lat=53.1191, lon=14.01577)
stop = store.find_closest_stop(carpool_stop, 1000)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from app.tests.sampledata import cp1, carpool_repeating
from app.services.trips import TripStore
from app.services.stops import StopsStore
from amarillo.tests.sampledata import cp1, carpool_repeating
from amarillo.services.trips import TripStore
from amarillo.services.stops import StopsStore


import logging
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file removed app/utils/__init__.py
Empty file.
2 changes: 1 addition & 1 deletion continuous-pull.ipy
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ while True:
!git pull
time.sleep(60)

# Note: when Amarillo runs with `uvicorn main:app --reload` and not with
# Note: when Amarillo runs with `uvicorn amarillo.main:app --reload` and not with
# `python main.py` then there is nothing else to do. The reload happens
# automatically.
8 changes: 4 additions & 4 deletions enhancer.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

from app.configuration import configure_enhancer_services
from app.utils.container import container
from app.models.Carpool import Carpool
from app.utils.utils import agency_carpool_ids_from_filename
from amarillo.configuration import configure_enhancer_services
from amarillo.utils.container import container
from amarillo.models.Carpool import Carpool
from amarillo.utils.utils import agency_carpool_ids_from_filename

logging.config.fileConfig('logging.conf', disable_existing_loggers=False)
logger = logging.getLogger("enhancer")
Expand Down

0 comments on commit 3bed37c

Please sign in to comment.