Guía
Catálogo Territory (jw-core)
jw_core.territories.Territory aporta la dimensión legal de un país
(jw_branch_region, legal_status_summary, ban_history). Lo
cultural/idiomático vive en jw_core.data.locale_context.LocaleContext
y se referencia por iso_3166. No duplicamos campos entre los dos.
Lookup
from jw_core.territories import get_territory, get_territory_full
t = get_territory("RU")
print(t.legal_status_summary) # "banned"
print(t.ban_history) # ("2017-04-20: Supreme Court ...", ...)
print(t.locale.localized_name("es")) # "Rusia"
# Combinado en un dict para agentes legales (F82.3+):
full = get_territory_full("RU")
print(full["name"]["en"]) # "Russia"
print(full["jw_branch_region"]) # "Russia (closed since 2017)"
Filtros
from jw_core.territories import territories_by_status, territories_by_branch
banned = territories_by_status("banned")
# → [Territory(iso_3166='RU', ...), Territory(iso_3166='KP', ...), ...]
russia_region = territories_by_branch("Russia")
# → [Territory(iso_3166='RU', ...)]
Estado de la cobertura (F82.0)
30 territorios curados al cierre de F82.0:
| Status | Países |
|---|---|
| banned | RU, KP, ER, SG, TJ |
| restricted | CN, AZ, BY, VN, MM, TR, CU, KZ |
| free | ES, MX, US, AR, BR, KR, JP, DE, FR, IT, GR, AM, GE, MD, CO, PE, PH |
Cada ban_history lleva comentario inline con la fuente
(URL jw.org/legal, número de aplicación ECHR, sentencia SCJN/SCOTUS, etc.).
Añadir un país nuevo
- Verificar que existe en
LocaleContext. Si no, añadir entry mínima coniso_3166,namemultilang ylanguages:"XX": LocaleContext( iso_3166="XX", name={"en": "Foo", "es": "Foo", "pt": "Foo"}, languages=("foo",), dominant_religions=("...",), ), - Añadir
Territorycon la dimensión legal:"XX": Territory( iso_3166="XX", jw_branch_region="...", legal_status_summary="free", ban_history=( # Source: jw.org/en/news/legal/by-region/foo/ "YYYY-MM-DD: descripción de cada evento clave", ), ), - Cada entrada de
ban_historylleva comentario inline con la URL o referencia a la publicación JW. Cero entries sin fuente. uv run pytest packages/jw-core/tests/test_territories_iso_validation.py -vconfirma que las invariantes ISO + LocaleContext + branch pasan.
Lo que no va en Territory
Si vas a añadir un campo nuevo, primero pregúntate: ¿es cultural
(idioma, religión, festividades, sensibilidades sociales)? Ese campo va
en LocaleContext. ¿Es legal (ley, ban, sentencia, tribunal)? Va en
Territory. Si no encaja en ninguna categoría, probablemente no es
infra compartida — pertenece al plugin que la necesita.
Próximas fases que consumen este catálogo
- F82.1 —
jw-legalBrainDomain usaTerritorycomo nodo del grafo. - F82.2 —
HUDOCSourcemapea sentencias porTerritory.iso_3166. - F82.3 —
legal_case_researcherfiltra por país usando ISO. - Futuro —
news_monitorfiltra noticias porlegal_status_summary.
Editar esta página en docs/guias/territories.md