Skip to main content

Faculties and departments data for FUTO (Federal University of Technology Owerri), with helper utilities.

Project description

futo-departments

Python-first data package for FUTO (Federal University of Technology Owerri) faculties and departments — with runtime helpers, abbreviation maps, formatters, and validation functions.

Works in any Python environment: Python 3.8+, Django, Flask, FastAPI, etc.

Installation

pip install futo-departments

Data

Raw list

from futo_departments import faculties, departments, faculty_departments

print(faculties)  # list of 12 schools/colleges
print(departments)  # list of 58 departments

faculty_departments["School of Information & Communication Technology"]
# ['Computer Science', 'Software Engineering', 'Cyber Security', 'Information Technology']

Abbreviation maps

from futo_departments import department_abbreviations, faculty_abbreviations

department_abbreviations["Computer Science"]  # "CSC"
department_abbreviations["Human Anatomy"]     # "ANA"

faculty_abbreviations["College of Medicine"]  # "COM"
faculty_abbreviations["School of Physical Sciences"]  # "SOPS"

Helper functions

Faculty ↔ Department lookups

from futo_departments import get_departments_by_faculty, get_faculty_by_department

get_departments_by_faculty("School of Physical Sciences")
# ['Mathematics', 'Physics', 'Chemistry', 'Statistics', 'Science Laboratory Technology']

get_departments_by_faculty("Unknown Faculty")
# returns full departments list as fallback

get_faculty_by_department("Computer Science")
# "School of Information & Communication Technology"

get_faculty_by_department("Witchcraft & Wizardry")
# None

Abbreviation lookups

from futo_departments import (
  get_department_abbreviation,
  get_faculty_abbreviation,
  get_department_by_abbreviation,
  get_faculty_by_abbreviation,
  list_departments_with_abbreviations,
  list_faculties_with_abbreviations
)

get_department_abbreviation("Computer Science")  # "CSC"
get_department_abbreviation("Unknown Dept")      # None

get_faculty_abbreviation("College of Medicine")  # "COM"
get_faculty_abbreviation("Unknown Faculty")      # None

get_department_by_abbreviation("CSC")           # "Computer Science"
get_department_by_abbreviation("csc")           # "Computer Science"
get_department_by_abbreviation("XYZ")           # None

get_faculty_by_abbreviation("COM")              # "College of Medicine"
get_faculty_by_abbreviation("XYZ")              # None

list_departments_with_abbreviations()
# [{'name': 'Computer Science', 'abbreviation': 'CSC'}, ...]

list_faculties_with_abbreviations()
# [{'name': 'College of Medicine', 'abbreviation': 'COM'}, ...]

Formatters

from futo_departments import shorten_department, shorten_faculty, format_name, mask_reg_number

shorten_department("Computer Science")       # "CSC"
shorten_department("Software Engineering")   # "SOE"

shorten_faculty("College of Medicine")       # "COM"
shorten_faculty("School of Physical Sciences")  # "SPS"

format_name("John")                          # "John"
format_name("John Doe")                      # "John Doe"
format_name("John Michael Doe")              # "John Michael D."
format_name("John Michael Doe Extra")        # "John Michael D."

mask_reg_number("F/HD/22/0012345")          # "F***********345"
mask_reg_number("F/HD/22/0012345", "#")     # "F###########345"

Validation / type guards

from futo_departments import is_valid_department, is_valid_faculty

is_valid_department("Software Engineering")  # True
is_valid_department("Data Science")          # False

is_valid_faculty("College of Medicine")      # True
is_valid_faculty("School of Medicine")       # False

Running tests

pip install -r requirements-dev.txt
pytest

Tests cover data integrity (no duplicates, no orphan departments), helper functions, edge cases, and validation behavior. See tests/ folder for full suite.


Publishing to npm

  1. Set "author" in package.json
  2. npm run build
  3. npm login
  4. npm publish

For a scoped package (e.g. @yourname/futo-departments), update the "name" field and run:

npm publish --access public

License

MIT

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

futo_departments-1.0.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

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

futo_departments-1.0.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file futo_departments-1.0.0.tar.gz.

File metadata

  • Download URL: futo_departments-1.0.0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for futo_departments-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cf47033f2aea00376641dfd3f9829585620cc2b92e03d92c3da66c6b515e0a7d
MD5 f7cfa7eb8ca5da02086ef0cf8c8b58d2
BLAKE2b-256 73a8cda2d72af6085c57cbd1c5251f9df39f2cf2e9224f30f855731fdaeea63c

See more details on using hashes here.

File details

Details for the file futo_departments-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for futo_departments-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ebde176b1ad357fb9b893730f26d93bae9acc8210c787b53bea86b8e840fea6
MD5 517acfb4f2780f87ffcf361359d8beff
BLAKE2b-256 138544405d624b54b0921ad2b06a7904bded91f0f9de9c175dca59b767d43901

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