Migration from 0.0.x
Version 0.1.0 is an intentional clean break. The legacy package returned nested dictionaries assembled around a different database. The rebuild returns immutable typed objects generated from a source-aware pipeline.
Core lookup
Legacy 0.0.x |
Rebuild 0.1.0 |
|---|---|
|
|
Dictionary keys |
Typed properties with autocomplete |
|
|
Directional coordinate fields |
Signed WGS84 |
Mutating returned dictionaries |
|
Before
import pyworldatlas as pwa
atlas = pwa.Atlas()
profile = atlas.get_country_profile("Japan")
print(profile["capital"]["name"])
After
>>> from pyworldatlas import Atlas
>>> with Atlas() as atlas:
... country = atlas.country("Japan")
... print(country.capital.name)
Tokyo
Compatibility scope
The legacy database schema and query code are not retained. This keeps the new runtime simple and prevents two competing data models from drifting apart.
Moving from 0.7 to 0.8
Version 0.8 is additive. Existing profile, physical-geography, ranking, distance, and border calls keep their 0.7 behavior. New convenience methods make common presentation and classroom tasks shorter:
with Atlas() as atlas:
print(atlas.country("Brazil").summary())
print(atlas.coordinates("Tokyo", country="JP").format())
cities = atlas.search_cities("santo", country="DO")
questions = atlas.quiz(topic="capitals", count=5, seed=42)
No dataset migration is required. Reproducible quizzes depend on both the seed and bundled dataset version, just like samples and flashcards.
Moving from 0.8 to 0.9
The core API remains additive and dependency-free. Interactive maps are installed only when requested:
python -m pip install --upgrade "pyworldatlas[maps]"
Existing code continues to use the same bundled country database. Map support
adds map(); it does not change country models or
expose public boundary geometry. See Interactive 3D maps for the smaller Overview
edition and the complete viewer API.
Maps after 0.9
Maps no longer need the pyworldatlas-mapview and pyworldatlas-mapdata-*
packages or Plotly. The viewer is part of PyWorldAtlas, and map data installs as
a checksummed data pack:
python -m pip install --upgrade pyworldatlas
pyworldatlas get maps
atlas.map(...), show(), write_html(), and the generated pages are
unchanged. CountryMap now lives in pyworldatlas.maps.
figure() still returns a Plotly figure when the separate plotly package is
installed, and the new to_dict() returns the same figure as plain data. The
maps and maps-overview extras still install, so older commands keep
working, and the old companion packages can be uninstalled.