Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Country Database in Python
See ggicci/countries for the full list of the properties.
pip install country-database
from country_database import load_countries
CountryIndex = load_countries()
print(CountryIndex.CAN.alpha2_code) # "CA"
print(CountryIndex.CAN.name) # "Canada"
print(CountryIndex.CAN.name.to_locale("zh")) # "加拿大"
CountryIndexZh = load_countries(locale="zh")
print(CountryIndexZh.CAN.name) # "加拿大"
print(CountryIndexZh.CAN.name.to_locale("en")) # "Canada"
from country_database import load_country
ca = load_country("CA") # or "CAN"
print(ca.name) # "Canada"
from dataclasses import dataclass
from country_database import CountryProperties, load_countries_generic
@dataclass(frozen=True)
class MyCountryIndex:
CAN: CountryProperties
USA: CountryProperties
CHN: CountryProperties
CountryIndex = load_countries_generic(MyCountryIndex)
The default database is ggicci/countries.
You can add your own data and load them easily by instantiate a DataLoader and pass it to the load_countries*
, load_country*
or just merge your database to the default_dataloader
.
from pathlib import Path
from dataclasses import dataclass
from country_database import (
CountryProperties,
DataLoader,
FullCountryIndex,
Property,
)
CUSTOM_DATA_DIR = Path("/path/to/your/custom/data/dir")
# NOTE: if you don't need the fields from the default database,
# you can just inherit CountryPropertiesBase instead of CountryProperties
@dataclass(frozen=True)
class MyCountry(CountryProperties):
custom_field_1: Property
custom_field_2: Property
# WAY 1: create a new dataloader.
loader = DataLoader() # will load the default database
loader.merge_database(CUSTOM_DATA_DIR)
# NOTE: If you don't want to load the default database, use the following statement:
# It will create a loader which only loads
# 1. the country codes from the default database;
# 2. data from CUSTOM_DATA_DIR;
# but data from the default database won't be loaded.
#
# loader = DataLoader(CUSTOM_DATA_DIR)
CountryIndex = load_countries_generic(FullCountryIndex[MyCountry], loader=loader)
# WAY 2: merge your database to the default_dataloader.
from country_database import default_dataloader
default_dataloader.merge_database(CUSTOM_DATA_DIR)
CountryIndex = load_countries_generic(FullCountryIndex[MyCountry])
FAQs
Country information database. Including names, capitals, currencies, etc.
We found that country-database demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.