Skip to content

fix: parse xyz2gen --periodic values from the command line - #205

Open
galjos wants to merge 1 commit into
devfrom
fix/xyz2gen-periodic
Open

fix: parse xyz2gen --periodic values from the command line#205
galjos wants to merge 1 commit into
devfrom
fix/xyz2gen-periodic

Conversation

@galjos

@galjos galjos commented Aug 24, 2026

Copy link
Copy Markdown
Member

--periodic declared Python objects as choices without a converter, so argparse compared the raw string against True, False, and None and rejected every input, including the ones its own error message suggested. A converter now maps the strings (case-insensitive) to the objects and rejects anything else with the same message shape.

The added tests cover all six accepted spellings, the default, the rejection, and the written gen file with and without the lattice block.

Fixes #204.

The --periodic option declared choices=[True, False, None] without a
type converter, so argparse compared the raw command-line string
against Python objects and rejected every value, including the ones
its own error message suggested. The option could therefore never
hold anything but its None default. A converter now maps the strings
True, False and None (case-insensitive) to the corresponding Python
values and reports a proper error for anything else.
@galjos
galjos requested a review from 97gamjak August 24, 2026 07:29
@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.01%. Comparing base (0961625) to head (e346ac3).

Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #205      +/-   ##
==========================================
+ Coverage   93.94%   94.01%   +0.06%     
==========================================
  Files         177      177              
  Lines        9227     9233       +6     
==========================================
+ Hits         8668     8680      +12     
+ Misses        559      553       -6     
Flag Coverage Δ
unittests 94.01% <100.00%> (+0.06%) ⬆️
Files with missing lines Coverage Δ
PQAnalysis/cli/xyz2gen.py 100.00% <100.00%> (+16.66%) ⬆️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

Copy link
Copy Markdown
Contributor

PYLINT REPORT

Your code has been rated at 9.78/10

Full report

Raw metrics

type number % previous difference
code 15663 45.59 NC NC
docstring 13068 38.04 NC NC
comment 463 1.35 NC NC
empty 5160 15.02 NC NC

Duplication

now previous difference
nb duplicated lines 0 NC NC
percent duplicated lines 0.000 NC NC

Messages by category

type number previous difference
convention 15 NC NC
refactor 135 NC NC
warning 17 NC NC
error 5 NC NC

% errors / warnings by module

module error warning refactor convention
PQAnalysis.type_checking 40.00 0.00 0.00 0.00
PQAnalysis.atomic_system.atomic_system 20.00 11.76 6.67 0.00
PQAnalysis.analysis.vibrational.vibrational_analysis 20.00 0.00 7.41 0.00
PQAnalysis 20.00 0.00 0.00 0.00
PQAnalysis.analysis.vacf._vacf_kernel_py 0.00 11.76 1.48 0.00
PQAnalysis.tools.traj_to_com_traj 0.00 11.76 0.00 0.00
PQAnalysis.io.traj_file._process_lines_py 0.00 11.76 0.00 0.00
PQAnalysis.io.moldescriptor_reader 0.00 11.76 0.00 0.00
PQAnalysis.tools.add_molecule 0.00 5.88 4.44 0.00
PQAnalysis.analysis.rdf._rdf_kernel_py 0.00 5.88 2.22 0.00
PQAnalysis.analysis.msd._msd_kernel_py 0.00 5.88 2.22 0.00
PQAnalysis.io.conversion_api 0.00 5.88 1.48 0.00
PQAnalysis.version 0.00 5.88 0.00 0.00
PQAnalysis.utils.custom_logging 0.00 5.88 0.00 0.00
PQAnalysis.io.write_api 0.00 5.88 0.00 0.00
PQAnalysis.io.restart_file.restart_writer 0.00 0.00 14.81 0.00
PQAnalysis.analysis.rdf.rdf 0.00 0.00 6.67 6.67
PQAnalysis.analysis.msd.msd 0.00 0.00 5.93 33.33
PQAnalysis.io.nep.nep_writer 0.00 0.00 5.19 6.67
PQAnalysis.analysis.vacf.vacf 0.00 0.00 4.44 13.33
PQAnalysis.io.traj_file._slab_parser_py 0.00 0.00 3.70 0.00
PQAnalysis.analysis.vacf.spectrum 0.00 0.00 3.70 0.00
PQAnalysis.io.traj_file.trajectory_reader 0.00 0.00 2.96 0.00
PQAnalysis.topology.bonded_topology.dihedral 0.00 0.00 2.22 0.00
PQAnalysis.core.residue 0.00 0.00 2.22 0.00
PQAnalysis.topology.bonded_topology.bonded_topology 0.00 0.00 1.48 0.00
PQAnalysis.topology.bonded_topology.bond 0.00 0.00 1.48 0.00
PQAnalysis.topology.bonded_topology.angle 0.00 0.00 1.48 0.00
PQAnalysis.io.traj_file.raw_frame_reader 0.00 0.00 1.48 0.00
PQAnalysis.core.cell.cell 0.00 0.00 1.48 0.00
PQAnalysis.atomic_system._standard_properties 0.00 0.00 1.48 0.00
PQAnalysis.analysis.vacf.api 0.00 0.00 1.48 0.00
PQAnalysis.analysis.spectrum_broadening.api 0.00 0.00 1.48 0.00
PQAnalysis.analysis.momentum.api 0.00 0.00 1.48 0.00
PQAnalysis.analysis.vibrational.vibrational_input_file_reader 0.00 0.00 0.74 6.67
PQAnalysis.traj.formats 0.00 0.00 0.74 0.00
PQAnalysis.topology.topology 0.00 0.00 0.74 0.00
PQAnalysis.topology.selection 0.00 0.00 0.74 0.00
PQAnalysis.io.traj_file.frame_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.restart_file.restart_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.input_file_reader.pq_analysis._parse 0.00 0.00 0.74 0.00
PQAnalysis.io.input_file_reader.pq.pq_input_file_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.input_file_reader.input_file_parser 0.00 0.00 0.74 0.00
PQAnalysis.io.info_file_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.formats 0.00 0.00 0.74 0.00
PQAnalysis.analysis.momentum.momentum 0.00 0.00 0.74 0.00
PQAnalysis.core.atom.element 0.00 0.00 0.00 13.33
PQAnalysis.analysis.vacf.vacf_input_file_reader 0.00 0.00 0.00 6.67
PQAnalysis.analysis.rdf.rdf_input_file_reader 0.00 0.00 0.00 6.67
PQAnalysis.analysis.msd.msd_input_file_reader 0.00 0.00 0.00 6.67

Messages

message id occurrences
too-many-positional-arguments 29
too-many-arguments 29
duplicate-code 20
too-many-locals 15
too-many-instance-attributes 13
invalid-name 12
too-complex 9
inconsistent-return-statements 8
fixme 7
too-many-branches 5
missing-type-doc 4
too-many-return-statements 3
too-many-lines 3
unused-import 2
too-many-statements 2
redefined-builtin 2
missing-kwoa 2
use-set-for-membership 1
unexpected-keyword-arg 1
too-many-public-methods 1
possibly-used-before-assignment 1
no-member 1
missing-param-doc 1
arguments-differ 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant