32 provide installation instructions#33
Conversation
- Support dual-mode: use package as MCP server or parser bundle -- This powers on-the-fly parsing + testing (MCP) as well as coding (parser bundle) -- Split regular tool wrappers from MCP and async functionalities -- Update `pyproject.toml` - Restructure folders to distinguish MCP servers: parsers, databases(, RAG)
-- Update templates - Generate a template folder for different hosts + dedeciated README
- Add `tests`, reserve folder for code tests
- Expand the dev section on testing in README
- Update readme on testing
|
So, this is my main proposal. Any feedback? Other options include
|
|
I am testing the setup for myself with VS Code, and also have Claude Code planned. |
|
Installation worked fine: git clone <repository>
cd parse-patrol
uv sync
uv sync --extra cclibSomething's wrong with the python config: It worked better a second time, not sure why: But why is gaussian available? from parse_patrol import cclib_parse # Pylint says: No name 'cclib_parse' in module 'parse_patrol'
result = cclib_parse(".pipelines/data/gaussian/frequency.gjf")Do we want the traceback here? Using a screenshot for Oh, it's only about showing that you can run the server by clicking play. Then the image is probably helpful. But why is the configuration then after this? Don't we need the configuration before? Stopping here for now. |
|
@Sideboard thank you for the feedback, they are very welcomed. It would be nicer to convert them to bulletpoints, so I can tick them off.
Has been patched now. Nothing major, just versioning effects for
What do you mean?
Is
One of us should open an issue for this. |
- Remove superfluous description in `__init__.py`, as this may cause unnecessary maintenance
- Make attribute extraction more robust Changes to be committed: modified: src/parse_patrol/__init__.py modified: src/parse_patrol/__main__.py
…he instructions have been tested
- Add example_integration_test.py for basic NOMAD functionality demo
- Add run_nomad_tests.py CLI runner with quick/selective testing options
- Add test_nomad_integration.py with full test suite covering:
- Multiple QM software (Gaussian, ORCA, VASP, Q-Chem, NWChem, Psi4)
- File download and parsing validation
- Multi-software workflow testing
- Automatic cleanup of test files
- Graceful handling of missing dependencies
Tests marked with pytest markers for flexible execution:
- integration: Network-dependent tests
- slow: Tests involving file downloads
Changes to be committed:
modified: pyproject.toml
new file: tests/README.md
new file: tests/example_integration_test.py
new file: tests/run_nomad_tests.py
new file: tests/test_nomad_integration.py
- Update Project Structure in general README to reflect changes - Move `pipelines` out of `src` - Move `.resources` under `.pipeline` Changes to be committed: renamed: .resources/semantic-schema.md -> .pipelines/resources/semantic-schema.md renamed: .resources/structure-schema.md -> .pipelines/resources/structure-schema.md modified: README.md
Changes to be committed: modified: README.md
Changes to be committed: modified: templates/README.md modified: tests/README.md
-- Update logic and tests to handle this directory -- Update gitignore to stop tracking temporary folders (`tests/.data` and `.pipelines/*/`) Changes to be committed: deleted: .data/ztbeMA28ILtxhTRp_mnCXhJYSARd/fc2yNy-pQG2J5fqcRs99tA/generate_c11_c12_dataset/run_calculations/6245/input.gjf deleted: .data/ztbeMA28ILtxhTRp_mnCXhJYSARd/fc2yNy-pQG2J5fqcRs99tA/generate_c11_c12_dataset/run_calculations/6245/input_smiles.txt deleted: .data/ztbeMA28ILtxhTRp_mnCXhJYSARd/fc2yNy-pQG2J5fqcRs99tA/generate_c11_c12_dataset/run_calculations/6245/molecule.mol deleted: .data/ztbeMA28ILtxhTRp_mnCXhJYSARd/manifest.json modified: .gitignore modified: src/parse_patrol/databases/nomad/utils.py modified: tests/example_integration_test.py modified: tests/test_nomad_integration.py
QuantumChemist
left a comment
There was a problem hiding this comment.
This is a really good PR, I have left some suggestions :)
-- Remove redundant tests -- Rewrite `test_nomad_integration.py` to solely focus on the NOMAD support + use pytest
Changes to be committed: modified: tests/test_nomad_integration.py
- Use pytest now as a system Changes to be committed: modified: tests/test_modular_mcp.py
Changes to be committed: modified: src/parse_patrol/parsers/iodata/utils.py
Changes to be committed: modified: tests/README.md modified: tests/test_modular_mcp.py modified: tests/test_nomad_integration.py
|
@Sideboard @QuantumChemist thank you both for the feedback. I incorporated almost all of it, and documented that in my replies. I am happy to notice that there were not particular objections to the new structure itself. If you are each satisfied, could you pls sign off? While there are still some points to polish (will open new follow-up PRs), I think that the objective of laying a new foundation has been met. I verified that it works in NOMAD, and would like to proceed with more targeted, incremental improvements. |
QuantumChemist
left a comment
There was a problem hiding this comment.
crazy, you have really polished the code! I really like it that way! :O :D
Haha, thank you very much! That's why it took a while. Hope this will facilitate development for everyone. |
Apply a "Try Before You Buy" design, where the project gets distributed as a MCP server and dependency.
Both code shipping systems, though I managed to make it work when targeting the GitHub repo. This may become more complex when we register them at each platform.
More specifically:
srccloses #32