diff --git a/CS411 HW2.pdf b/CS411 HW2.pdf new file mode 100644 index 0000000..473a85a Binary files /dev/null and b/CS411 HW2.pdf differ diff --git a/Dependencies Diagram.pdf b/Dependencies Diagram.pdf new file mode 100644 index 0000000..e49074e Binary files /dev/null and b/Dependencies Diagram.pdf differ diff --git a/wildlife_tracker/animal_managment/__init__.py b/wildlife_tracker/animal_managment/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/wildlife_tracker/animal_managment/a b/wildlife_tracker/animal_managment/a new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wildlife_tracker/animal_managment/a @@ -0,0 +1 @@ + diff --git a/wildlife_tracker/animal_managment/animal.py b/wildlife_tracker/animal_managment/animal.py new file mode 100644 index 0000000..9b3e051 --- /dev/null +++ b/wildlife_tracker/animal_managment/animal.py @@ -0,0 +1,5 @@ +from typing import Any, Optional + +class Animal: + + pass diff --git a/wildlife_tracker/animal_managment/animal_manager.py b/wildlife_tracker/animal_managment/animal_manager.py new file mode 100644 index 0000000..e016106 --- /dev/null +++ b/wildlife_tracker/animal_managment/animal_manager.py @@ -0,0 +1,23 @@ +from typing import Any, Optional + +from wildlife_tracker.animal_management.animal import Animal + +class AnimalManager: + + def __init__(self) -> None: + animals: dict[int, Animal] = {} + + def get_animal_by_id(self, animal_id: int) -> Optional[Animal]: + pass + + def register_animal(self, Animal) -> None: + pass + + def remove_animal(self, animal_id: int) -> None: + pass + + def get_animal_details(animal_id) -> dict[str, Any]: + pass + + def update_animal_details(animal_id: int, **kwargs: Any) -> None: + pass diff --git a/wildlife_tracker/habitat)management/__init__.py b/wildlife_tracker/habitat)management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/wildlife_tracker/habitat)management/a b/wildlife_tracker/habitat)management/a new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wildlife_tracker/habitat)management/a @@ -0,0 +1 @@ + diff --git a/wildlife_tracker/habitat)management/habitat.py b/wildlife_tracker/habitat)management/habitat.py new file mode 100644 index 0000000..a1842ed --- /dev/null +++ b/wildlife_tracker/habitat)management/habitat.py @@ -0,0 +1,32 @@ +from typing import Any, List, Optional + +class Habitat: + + def __init__(self, + habitat_id: int, + geographic_area: str, + size: int, + environment_type: str, + animals: Optional[List[int]] = None) -> None: + self.habitat_id = habitat_id + self.geographic_area = geographic_area + self.size = size + self.environment_type = environment_type + # this is Pythonic for + # if animals is not None: + # self.animals = animals + # else: + # self.animals = [] + self.animals = animals or [] + +def update_habitat_details(self, **kwargs: dict[str: Any]) -> None: + pass + +def assign_animals_to_habitat(self, animals: List[Animal]) -> None: + pass + +def get_animals_in_habitat(self) -> List[Animal]: + pass + +def get_habitat_details(self) -> dict: + pass \ No newline at end of file diff --git a/wildlife_tracker/habitat)management/habitat_manger.py b/wildlife_tracker/habitat)management/habitat_manger.py new file mode 100644 index 0000000..4eaaecb --- /dev/null +++ b/wildlife_tracker/habitat)management/habitat_manger.py @@ -0,0 +1,38 @@ +from typing import Optional, List, Any +from wildlife_tracker.animal_management.animal import Animal +from wildlife_tracker.habitat_management.habitat import Habitat + +class HabitatManager: + + def __init__(self) -> None: + habitats: dict[int, Habitat] = {} + + def assign_animals_to_habitat(self, habitat_id: int, animals: List[Animal]) -> None: + pass + + def create_habitat(self, habitat_id: int, geographic_area: str, size: int, environment_type: str) -> Habitat: + pass + + def remove_habitat(self, habitat_id: int) -> None: + pass + + def get_animals_in_habitat(self, habitat_id: int) -> List[Animal]: + pass + + def get_habitats_by_geographic_area(self, geographic_area: str) -> List[Habitat]: + pass + + def get_habitat_details(self, habitat_id: int) -> dict: + pass + + def get_habitat_by_id(self, habitat_id: int) -> Habitat: + pass + + def get_habitats_by_size(self, size: int) -> List[Habitat]: + pass + + def get_habitats_by_type(self, environment_type: str) -> List[Habitat]: + pass + + def update_habitat_details(self, habitat_id: int, **kwargs: dict[str, Any]) -> None: + pass diff --git a/wildlife_tracker/migration_tracking/__init__.py b/wildlife_tracker/migration_tracking/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/wildlife_tracker/migration_tracking/a b/wildlife_tracker/migration_tracking/a new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wildlife_tracker/migration_tracking/a @@ -0,0 +1 @@ + diff --git a/wildlife_tracker/migration_tracking/migration.py b/wildlife_tracker/migration_tracking/migration.py new file mode 100644 index 0000000..697e17f --- /dev/null +++ b/wildlife_tracker/migration_tracking/migration.py @@ -0,0 +1,5 @@ +from typing import Any + +class Migration: + + pass \ No newline at end of file diff --git a/wildlife_tracker/migration_tracking/migration_manager.py b/wildlife_tracker/migration_tracking/migration_manager.py new file mode 100644 index 0000000..992a665 --- /dev/null +++ b/wildlife_tracker/migration_tracking/migration_manager.py @@ -0,0 +1,73 @@ +from typing import Optional, Any +from wildlife_tracker.migration_tracking.migration_path import MigrationPath +from wildlife_tracker.migration_tracking.migration import Migration +from wildlife_tracker.habitat_management.habitat import Habitat + + +class MigrationManager: + def __init__(self) -> None: + paths: dict[int, MigrationPath] = {} + migrations: dict[int, Migration] = {} + + def create_migration_path(self, species: str, start_location: Habitat, destination: Habitat, duration: Optional[int] = None) -> None: + pass + + def get_migration_paths_by_destination(self, destination: Habitat) -> list[MigrationPath]: + pass + + def get_migration_paths_by_species(self, species: str) -> list[MigrationPath]: + pass + + def get_migration_paths_by_start_location(self, start_location: Habitat) -> list[MigrationPath]: + pass + + def get_migrations(self) -> list[Migration]: + pass + + def get_migration_by_id(self, migration_id: int) -> Migration: + pass + + def get_migration_details(self, migration_id: int) -> dict[str, Any]: + pass + + def get_migrations_by_current_location(self, current_location: str) -> list[Migration]: + pass + + def get_migrations_by_migration_path(self, migration_path_id: int) -> list[Migration]: + pass + + def get_migrations_by_start_date(self, start_date: str) -> list[Migration]: + pass + + def get_migrations_by_status(self, status: str) -> list[Migration]: + pass + + def get_migration_path_details(self, path_id) -> dict: + pass + + def remove_migration_path(self, path_id: int) -> None: + pass + + def update_animal_details(self, animal_id: int, **kwargs: Any) -> None: + pass + + def update_habitat_details(self, habitat_id: int, **kwargs: dict[str, Any]) -> None: + pass + + def update_migration_details(self, migration_id: int, **kwargs: Any) -> None: + pass + + def update_migration_path_details(self, path_id: int, **kwargs) -> None: + pass + + def cancel_migration(self, migration_id: int) -> None: + pass + + def update_migration_details(self, migration_id: int, **kwargs: Any) -> None: + pass + + def update_migration_path_details(self, path_id: int, **kwargs) -> None: + pass + + def schedule_migration(self, migration_path: MigrationPath) -> None: + pass \ No newline at end of file diff --git a/wildlife_tracker/migration_tracking/migration_path.py b/wildlife_tracker/migration_tracking/migration_path.py new file mode 100644 index 0000000..48085c6 --- /dev/null +++ b/wildlife_tracker/migration_tracking/migration_path.py @@ -0,0 +1,5 @@ +from typing import Optional + +class MigrationPath: + + pass \ No newline at end of file