Warning
This project is archived and no longer maintained. It is incomplete and misparses some PSA files. For a more complete reader, see Vazen's PSA support.
psa-parser is a C library and CLI for reading PSA planogram files.
This project is not affiliated with, endorsed by, or sponsored by Blue Yonder, JDA, or any related vendor. Product and company names are trademarks of their respective owners.
The field mappings are based on years of hands-on experience working with planogram files. The project does not include proprietary documentation or customer planogram files. Fields that are not understood are kept in a generic unknown-fields structure.
psa-parser is a read-only interchange utility.
- Archived; no further development or support.
- Incomplete and known to misparse some files. Do not rely on it for production data.
- Tests use synthetic fixtures. Compatibility with any particular vendor version is not guaranteed.
- Linux/macOS shell environment
gccmakepython3(synthetic fixture generation for tests)
No external runtime dependencies.
include/psa.h: public APIsrc/: parser, record mapping, JSON helperscli/main.c: command-line interfacetests/: unit and synthetic integration tests
make all # library, CLI, tests
make test # full test suite
make synthetic-test # synthetic manifest verification
make clean
./build/psa-cli path/to/file.psa # one JSON document (default)
./build/psa-cli --stream path/to/file.psa # JSON Lines
./build/psa-cli --summary path/to/file.psa # parse summary
./build/psa-cli --help
psa_parse_file(...),psa_parse_file_ex(...): file parsing (the_exform accepts limits)psa_parse_buffer(...),psa_parse_buffer_ex(...): in-memory parsing- Records arrive via callback as
psa_record_t - JSON helpers:
psa_record_to_json,psa_file_meta_to_json,psa_parse_file_to_json_document,psa_parse_buffer_to_json_document
See include/psa.h for details.
MIT. See LICENSE.