Skip to content

ImportLocalizedLists is placed on FLExProject directly - violates domain-namespace convention #73

@MattGyverLee

Description

@MattGyverLee

Found during /lex-lead deep review of commit 969fe09.

Problem

Every other catalog/import in this codebase is namespaced behind a domain operations property:

  • project.SemanticDomains.ImportCatalog()
  • project.Anthropology.ImportCatalog()
  • project.Phonemes.ImportCatalog()

The new methods (ImportLocalizedLists, ImportLocalizedListsForEnabledWS) hang directly off FLExProject as peers of OpenProject / CloseProject -- breaking that convention.

Localized lists do span multiple domains (SemDom + AnthroList + LexDb), but a project.LocalizedLists (or project.Lists) operations property would preserve the discovery model and keep the API user-centric (CLAUDE.md "User-Centric Not Technology-Centric").

Why it matters

  • Users won't find these methods via tab-completion under project.SemanticDomains. where they conceptually belong
  • Adds two top-level methods to FLExProject instead of one accessor, growing the discovery surface
  • The convention is well-established; deviating without strong reason cements the inconsistency
  • progress=None parameter pattern is established on *Operations.ImportCatalog but not on FLExProject itself — namespacing also fixes that (mentioned below)

Proposed correction

Introduce a new LocalizedListsOperations (or ListsOperations) class that owns these methods:

project.LocalizedLists.Import(language_code)
project.LocalizedLists.ImportForAllAnalysisWritingSystems()  # better name, see naming issue

FLExProject exposes them via a lazy @property LocalizedLists accessor that returns the operations instance, mirroring how SemanticDomains is wired.

Found by

lex-author P0 review of 969fe09

Related

  • See the naming issue (ImportLocalizedListsForEnabledWS is encoded-style) -- both fixes ride together

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions