Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion mempalace/entity_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ def load(cls, config_dir: Optional[Path] = None) -> "EntityRegistry":
path = (Path(config_dir) / "entity_registry.json") if config_dir else cls.DEFAULT_PATH
if path.exists():
try:
data = json.loads(path.read_text())
data = json.loads(path.read_text(encoding="utf-8"))
return cls(data, path)
except (json.JSONDecodeError, OSError):
pass
Expand Down
2 changes: 1 addition & 1 deletion mempalace/instructions_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ def run_instructions(name: str):
print(f"Instructions file not found: {md_path}", file=sys.stderr)
sys.exit(1)

print(md_path.read_text())
print(md_path.read_text(encoding="utf-8"))
6 changes: 3 additions & 3 deletions mempalace/split_mega_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def _load_known_names_config(force_reload: bool = False):

if _KNOWN_NAMES_PATH.exists():
try:
_KNOWN_NAMES_CACHE = json.loads(_KNOWN_NAMES_PATH.read_text())
_KNOWN_NAMES_CACHE = json.loads(_KNOWN_NAMES_PATH.read_text(encoding="utf-8"))
return _KNOWN_NAMES_CACHE
except (json.JSONDecodeError, OSError):
pass
Expand Down Expand Up @@ -184,7 +184,7 @@ def split_file(filepath, output_dir, dry_run=False):
path = Path(filepath)
max_size = 500 * 1024 * 1024 # 500 MB safety limit
if path.stat().st_size > max_size:
print(f" SKIP: {path.name} exceeds {max_size // (1024*1024)} MB limit")
print(f" SKIP: {path.name} exceeds {max_size // (1024 * 1024)} MB limit")
return []
lines = path.read_text(errors="replace").splitlines(keepends=True)

Expand Down Expand Up @@ -273,7 +273,7 @@ def main():
max_scan_size = 500 * 1024 * 1024 # 500 MB
for f in files:
if f.stat().st_size > max_scan_size:
print(f" SKIP: {f.name} exceeds {max_scan_size // (1024*1024)} MB limit")
print(f" SKIP: {f.name} exceeds {max_scan_size // (1024 * 1024)} MB limit")
continue
lines = f.read_text(errors="replace").splitlines(keepends=True)
boundaries = find_session_boundaries(lines)
Expand Down
2 changes: 1 addition & 1 deletion tests/test_instructions_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
def test_run_instructions_valid_name(capsys):
"""Valid name prints the .md file content."""
name = "init"
expected = (INSTRUCTIONS_DIR / f"{name}.md").read_text()
expected = (INSTRUCTIONS_DIR / f"{name}.md").read_text(encoding="utf-8")
run_instructions(name)
captured = capsys.readouterr()
assert captured.out.strip() == expected.strip()
Expand Down
8 changes: 4 additions & 4 deletions tests/test_onboarding.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ def test_generate_aaak_bootstrap_entities_content(tmp_path):
wings = ["family"]
_generate_aaak_bootstrap(people, projects, wings, "personal", config_dir=tmp_path)

content = (tmp_path / "aaak_entities.md").read_text()
content = (tmp_path / "aaak_entities.md").read_text(encoding="utf-8")
assert "Riley" in content
assert "RIL" in content # entity code
assert "MemPalace" in content
Expand All @@ -171,7 +171,7 @@ def test_generate_aaak_bootstrap_facts_content(tmp_path):
wings = ["projects"]
_generate_aaak_bootstrap(people, projects, wings, "work", config_dir=tmp_path)

content = (tmp_path / "critical_facts.md").read_text()
content = (tmp_path / "critical_facts.md").read_text(encoding="utf-8")
assert "Alice" in content
assert "Acme" in content
assert "work" in content.lower()
Expand All @@ -190,7 +190,7 @@ def test_generate_aaak_bootstrap_collision(tmp_path):
{"name": "Alison", "relationship": "coworker", "context": "work"},
]
_generate_aaak_bootstrap(people, [], ["work"], "work", config_dir=tmp_path)
content = (tmp_path / "aaak_entities.md").read_text()
content = (tmp_path / "aaak_entities.md").read_text(encoding="utf-8")
assert "ALI" in content
assert "ALIS" in content

Expand All @@ -199,7 +199,7 @@ def test_generate_aaak_bootstrap_no_relationship(tmp_path):
"""Person without relationship string still generates entry."""
people = [{"name": "Bob", "context": "work"}]
_generate_aaak_bootstrap(people, [], ["work"], "work", config_dir=tmp_path)
content = (tmp_path / "aaak_entities.md").read_text()
content = (tmp_path / "aaak_entities.md").read_text(encoding="utf-8")
assert "BOB=Bob" in content


Expand Down