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
8 changes: 8 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,10 @@ lookup-ref-ex:
pronom:
python jsonid.py --pronom --debug

# PRONOM demo
pronom-example:
python json2pronom.py -p pronom_example/patterns_example.json

# move pronom to .droid folder
pronom-to-droid:
~/.droid6/clean.sh
Expand All @@ -128,3 +132,7 @@ roy:
droid-cli path: pronom-to-droid
java -jar ~/dp/droid/droid-binary-6.8.0-bin/droid-command-line-6.8.0.jar -s 1
java -jar ~/dp/droid/droid-binary-6.8.0-bin/droid-command-line-6.8.0.jar -ri {{path}}

# inspect prronom
inspect-pro:
bat jsonid_pronom.xml
3 changes: 2 additions & 1 deletion src/jsonid/export.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@


PRONOM_FILENAME: Final[str] = "jsonid_pronom.xml"
JSON_PUID: Final[str] = "fmt/817"


class PRONOMException(Exception):
Expand Down Expand Up @@ -77,7 +78,7 @@ def export_pronom() -> None:
increment_id += 1
fmt = pronom.Format(
id=increment_id,
name=f"JSON (Baseline - fmt/817) ({encoding})",
name=f"JSON (Baseline - {JSON_PUID}) ({encoding})",
version="",
puid="jsonid:0000",
mime="application/json",
Expand Down
17 changes: 14 additions & 3 deletions src/jsonid/pronom.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,15 @@
from typing import Any, Final

try:
import export
import export_helpers
import helpers
import registry_matchers
except ModuleNotFoundError:
try:
from src.jsonid import export_helpers, helpers, registry_matchers
from src.jsonid import export, export_helpers, helpers, registry_matchers
except ModuleNotFoundError:
from jsonid import export_helpers, helpers, registry_matchers
from jsonid import export, export_helpers, helpers, registry_matchers


logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -234,9 +235,19 @@ def create_file_format_collection(fmt: list[Format]):
for sig in fmt.external_signatures
if sig.type.lower() == EXT
]

priority_ids = []
for id_ in fmt.priorities:
if id_ == str(fmt.id):
continue
if export.JSON_PUID in fmt.name:
# This is brittle. Understand how to make more robust.
continue
priority_ids.append(id_)

priorities = [
f"<HasPriorityOverFileFormatID>{priority}</HasPriorityOverFileFormatID>"
for priority in fmt.priorities
for priority in priority_ids
]
ff = f"""
<FileFormat ID=\"{fmt.id}\" Name=\"{fmt.name}\" PUID=\"{fmt.puid}\" Version="{fmt.version}" MIMEType=\"{fmt.mime}\" FormatType=\"{fmt.classification}\" >
Expand Down