rxiv-maker 1.16.1__tar.gz → 1.16.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/CHANGELOG.md +27 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/PKG-INFO +1 -1
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/README.md +2 -0
- rxiv_maker-1.16.3/src/docs/api/homebrew_checker.py.md +99 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/index.md +2 -0
- rxiv_maker-1.16.3/src/docs/api/install_detector.py.md +81 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/__version__.py +1 -1
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/init.py +4 -5
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/upgrade.py +1 -1
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/framework/base.py +3 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/framework/workflow_commands.py +4 -22
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/bst_generator.py +23 -6
- rxiv_maker-1.16.3/tests/cli/test_init_command.py +571 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/.gitignore +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/LICENSE +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/README.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/pyproject.toml +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/__version__.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/author_name_formatter.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/bibliography_parser.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/cache_utils.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/changelog_parser.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/citation_utils.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/email_encoder.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/error_codes.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/figure_utils.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/github.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/logging_config.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/operation_ids.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/platform.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/python_execution_reporter.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/text_utils.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/unicode_safe.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/url_to_doi.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/docs/api/validate.py.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/logo/logo-rxiv-maker.afdesign +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/logo/logo-rxiv-maker.png +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/logo/logo-rxiv-maker.svg +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/__main__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/arxiv.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/bibliography.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/build.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/cache_management.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/changelog.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/check_installation.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/clean.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/completion.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/config.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/create_repo.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/docx.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/figures.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/get_rxiv_preprint.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/install_deps.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/repo_init.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/repos.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/repos_search.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/setup.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/track_changes.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/validate.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/commands/version.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/framework/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/framework/cache_commands.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/framework/config_commands.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/framework/content_commands.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/framework/decorators.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/framework/utility_commands.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/framework.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/interactive.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/interactive_prompts.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/cli/main.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/config/defaults.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/config/validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/citation_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/code_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/comment_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/custom_command_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/figure_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/html_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/list_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/math_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/md2tex.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/python_executor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/section_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/supplementary_note_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/table_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/text_formatters.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/types.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/converters/url_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/cache/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/cache/advanced_cache.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/cache/bibliography_cache.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/cache/cache_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/cache/doi_cache.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/cache/secure_cache_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/content_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/environment_bootstrap.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/environment_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/error_codes.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/error_recovery.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/logging_config.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/cache_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/config_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/dependency_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/execution_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/file_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/install_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/state_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/unified_config_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/validation_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/managers/workflow_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/path_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/progress_framework.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/repo_config.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/repository.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/session_optimizer.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/core/validation_framework.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/data/tips.yaml +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/add_bibliography.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/build_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/cleanup.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/fix_bibliography.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/generate_docs.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/generate_figures.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/generate_preprint.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/prepare_arxiv.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/setup_environment.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/track_changes.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/validate.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/engines/operations/validate_pdf.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/exporters/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/exporters/docx_citation_mapper.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/exporters/docx_content_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/exporters/docx_exporter.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/exporters/docx_writer.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/dependency_handlers/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/dependency_handlers/latex.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/dependency_handlers/r_lang.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/dependency_handlers/system_libs.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/platform_installers/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/platform_installers/base.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/platform_installers/linux.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/platform_installers/macos.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/platform_installers/windows.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/utils/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/utils/logging.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/utils/progress.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/install/utils/verification.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/manuscript_utils/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/manuscript_utils/figure_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/processors/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/processors/author_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/processors/markdown_preprocessor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/processors/template_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/processors/yaml_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/rxiv_maker_cli.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/scripts/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/scripts/custom_doc_generator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/scripts/validate_manuscript.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/services/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/services/base.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/services/build_service.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/services/configuration_service.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/services/manuscript_service.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/services/publication_service.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/services/validation_service.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/templates/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/templates/manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/templates/registry.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/tex/python_execution_section.tex +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/author_name_formatter.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/bibliography_checksum.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/bibliography_parser.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/changelog_parser.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/citation_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/dependency_checker.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/docx_helpers.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/doi_resolver.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/email_encoder.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/figure_checksum.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/file_helpers.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/github.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/homebrew_checker.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/install_detector.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/operation_ids.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/pdf_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/performance.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/platform.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/python_execution_reporter.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/retry.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/text_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/tips.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/title_sync.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/unicode_safe.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/update_checker.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/utils/url_to_doi.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validate.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/base_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/citation_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/doi/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/doi/api_clients.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/doi/metadata_comparator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/doi_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/figure_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/latex_error_parser.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/math_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/pdf_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/reference_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/rxiv_maker/validators/syntax_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/tex/style/rxiv_maker_style.bst +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/tex/style/rxiv_maker_style.cls +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/src/tex/template.tex +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/cli/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/cli/test_build.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/cli/test_changelog_command.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/cli/test_main.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/conftest.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/e2e/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/e2e/test_dummy_manuscript_generator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/e2e/test_figure_workflow_validation.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/00_CONFIG.yml +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/01_MAIN.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/03_REFERENCES.bib +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/FIGURES/Fig1.png +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/FIGURES/Fig2.png +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/FIGURES/Fig3.png +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/README.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/docx_export/sample_manuscript/01_MAIN.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/docx_export/sample_manuscript/02_SUPPLEMENTARY_INFO.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/docx_export/sample_manuscript/03_REFERENCES.bib +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/docx_export/sample_manuscript/2025__unknown_et_al__rxiv.docx +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/fixtures/docx_export/sample_manuscript/sample_manuscript.docx +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_article_generation.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_bibliography_author_format_docx.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_binary_distribution.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_centralized_components.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_citation_injection.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_comment_system_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_docx_export_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_doi_fallback_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_doi_validation_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_example_manuscript.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_guillaume_fixtures.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_homebrew_workflow_validation.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_infrastructure_suite.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_init_build_workflow.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_install_verification_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_latex_dependency_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_manuscript_directory_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_manuscript_python_execution_reporting.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_practical_manuscript_workflows.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_pypi_package_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_python_execution_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_repository_cli_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_supplementary_formatting.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_user_reported_issue.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/integration/test_validation_workflow.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/README.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/conftest.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/test_cli_argument_parsing.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/test_discord_reported_issues.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/test_error_message_quality.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/test_google_colab_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/test_guillaume_edge_cases.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/test_guillaume_pr131_rewrite.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/test_path_resolution.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/test_widget_author_behavior.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/regression/test_widget_interactions_playwright.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/smoke/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/smoke/test_basic_functionality.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/smoke/test_cli_smoke.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/system/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/system/test_ci_matrix.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/system/test_cli_workflows.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/system/test_end_to_end.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/test_homebrew_checker.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/test_install_detector.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/exporters/__init__.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/exporters/test_docx_citation_mapper.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/exporters/test_docx_content_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_add_bibliography.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_arxiv_command.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_async_execution_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_author_name_formatter.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_author_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_build_command.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_build_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_build_manager_manuscript_path.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_cache_security.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_cache_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_check_installation_command.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_citation_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_citation_rendering.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_citation_style.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_citation_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_cli_cleanup_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_cli_structure.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_comment_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_conda_installation_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_conda_platform_detection.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_cross_platform_optimizations.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_custom_command_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_dependency_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_dependency_package_names.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_docx_helpers.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_doi_fallback_system.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_doi_resolver.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_doi_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_email_encoder.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_environment_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_error_handling_scenarios.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_execution_manager_comprehensive.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_figure_generator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_figure_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_figure_processor_error_handling.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_file_helpers.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_fix_bibliography.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_generate_docs.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_generate_preprint.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_github.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_github_actions_integration.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_importlib_edge_cases.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_install_platform_installers.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_install_system_libs.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_install_verification.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_interactive_path_change.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_interactive_validators.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_latex_dependency_handler.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_manuscript_figure_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_manuscript_repository.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_math_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_md2tex.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_mermaid_fallback.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_path_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_pdf_validator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_platform_comprehensive.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_platform_detector.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_processor_suite.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_python_execution_reporter.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_python_executor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_release_orchestrator.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_repository_manager.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_rxiv_setup_command.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_security_features.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_security_scanner.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_setup_environment.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_style_file_resolution.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_supplementary_note_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_table_rotation.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_template_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_text_formatters.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_text_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_tips.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_title_sync.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_title_sync_validation.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_track_changes.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_trailing_slash_regression.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_upgrade_command.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_url_to_doi.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_utils.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_validate_backticks.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_validate_command_fixed.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_validate_manuscript.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_validation_suite.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_validators.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/unit/test_yaml_processor.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/README.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/figure-positioning/00_CONFIG.yml +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/figure-positioning/01_MAIN.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/figure-positioning/03_REFERENCES.bib +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/figure-positioning/FIGURES/Figure__positioning_test.png +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/figure-positioning/FIGURES/Figure__positioning_test.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/figure-positioning/FIGURES/ReadyFig.png +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/figure-positioning/FIGURES/ReadyFig.py +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/figure-positioning/README.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/methods-placement/00_CONFIG.yml +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/methods-placement/01_MAIN.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/methods-placement/02_SUPPLEMENTARY_INFO.md +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/methods-placement/03_REFERENCES.bib +0 -0
- {rxiv_maker-1.16.1 → rxiv_maker-1.16.3}/tests/visual/methods-placement/README.md +0 -0
|
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.16.3] - 2025-12-15
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **BibTeX Style Template Resolution**: Fixed `.bst` template file path resolution in `bst_generator.py`
|
|
14
|
+
- Corrected path traversal to properly locate template files in both installed and development environments
|
|
15
|
+
- Added fallback locations for robust template detection
|
|
16
|
+
- Eliminates "Template .bst file not found" warnings during PDF generation with custom bibliography formats
|
|
17
|
+
- Improved error messages to show all searched locations when template is not found
|
|
18
|
+
|
|
19
|
+
## [1.16.2] - 2025-12-15
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- **Non-Interactive Init Command**: Made `rxiv init` fully non-interactive for reliable automated testing
|
|
23
|
+
- Removed all interactive prompts (overwrite confirmation, manuscript details)
|
|
24
|
+
- Always uses sensible defaults for title, author, email, ORCID, and affiliation
|
|
25
|
+
- Fails immediately with clear error message if directory exists without `--force` flag
|
|
26
|
+
- `--no-interactive` flag hidden but maintained for backward compatibility
|
|
27
|
+
- Updated documentation to clearly state non-interactive behavior
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
- **Error Messages**: Improved `CommandExecutionError` handling to display clean error messages to stderr
|
|
31
|
+
- **Import Fix**: Updated upgrade command to import `force_update_check` from `henriqueslab-updater` package
|
|
32
|
+
|
|
33
|
+
### Testing
|
|
34
|
+
- Added comprehensive test suite with 26 tests covering all init command edge cases
|
|
35
|
+
- All tests passing: 26 new tests + 4 existing integration tests (30/30 total)
|
|
36
|
+
|
|
10
37
|
## [1.16.1] - 2025-12-15
|
|
11
38
|
|
|
12
39
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rxiv-maker
|
|
3
|
-
Version: 1.16.
|
|
3
|
+
Version: 1.16.3
|
|
4
4
|
Summary: Write scientific preprints in Markdown. Generate publication-ready PDFs efficiently.
|
|
5
5
|
Project-URL: Homepage, https://github.com/HenriquesLab/rxiv-maker
|
|
6
6
|
Project-URL: Documentation, https://github.com/HenriquesLab/rxiv-maker#readme
|
|
@@ -16,6 +16,8 @@ Welcome to the API documentation for rxiv-maker.
|
|
|
16
16
|
- [utils.citation_utils.py](utils_citation_utils.py.md)
|
|
17
17
|
- [utils.email_encoder.py](utils_email_encoder.py.md)
|
|
18
18
|
- [utils.github.py](utils_github.py.md)
|
|
19
|
+
- [utils.homebrew_checker.py](utils_homebrew_checker.py.md)
|
|
20
|
+
- [utils.install_detector.py](utils_install_detector.py.md)
|
|
19
21
|
- [utils.operation_ids.py](utils_operation_ids.py.md)
|
|
20
22
|
- [utils.platform.py](utils_platform.py.md)
|
|
21
23
|
- [utils.python_execution_reporter.py](utils_python_execution_reporter.py.md)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
|
|
3
|
+
<a href="https://github.com/henriqueslab/rxiv-maker/blob/main/src/src/rxiv_maker/utils/homebrew_checker.py#L0"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
|
|
4
|
+
|
|
5
|
+
# <kbd>module</kbd> `homebrew_checker.py`
|
|
6
|
+
Homebrew update checker for rxiv-maker.
|
|
7
|
+
|
|
8
|
+
Checks if a newer version is available via Homebrew.
|
|
9
|
+
|
|
10
|
+
Note: Before upgrading with Homebrew, always run 'brew update' first to fetch the latest formulae.
|
|
11
|
+
|
|
12
|
+
**Global Variables**
|
|
13
|
+
---------------
|
|
14
|
+
- **HOMEBREW_TAP**
|
|
15
|
+
- **FORMULA_NAME**
|
|
16
|
+
- **FORMULA_URL**
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
<a href="https://github.com/henriqueslab/rxiv-maker/blob/main/src/src/rxiv_maker/utils/homebrew_checker.py#L21"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
|
|
21
|
+
|
|
22
|
+
## <kbd>function</kbd> `check_brew_outdated`
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
check_brew_outdated(
|
|
26
|
+
package: str = 'rxiv-maker',
|
|
27
|
+
timeout: int = 5
|
|
28
|
+
) → Optional[Tuple[str, str]]
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Check if package is outdated using `brew outdated` command.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
**Args:**
|
|
36
|
+
|
|
37
|
+
- <b>`package`</b>: Package name to check
|
|
38
|
+
- <b>`timeout`</b>: Command timeout in seconds
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
**Returns:**
|
|
43
|
+
Tuple of (current_version, latest_version) if outdated, None otherwise Returns None if brew is not installed or command fails
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
<a href="https://github.com/henriqueslab/rxiv-maker/blob/main/src/src/rxiv_maker/utils/homebrew_checker.py#L63"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
|
|
49
|
+
|
|
50
|
+
## <kbd>function</kbd> `check_formula_github`
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
check_formula_github(
|
|
54
|
+
formula_url: str = 'https://raw.githubusercontent.com/henriqueslab/homebrew-formulas/main/Formula/rxiv-maker.rb',
|
|
55
|
+
timeout: int = 5
|
|
56
|
+
) → Optional[str]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Check the latest version from the GitHub formula file.
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
**Args:**
|
|
64
|
+
|
|
65
|
+
- <b>`formula_url`</b>: URL to the formula Ruby file
|
|
66
|
+
- <b>`timeout`</b>: Request timeout in seconds
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
**Returns:**
|
|
71
|
+
Latest version string if found, None otherwise
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
<a href="https://github.com/henriqueslab/rxiv-maker/blob/main/src/src/rxiv_maker/utils/homebrew_checker.py#L99"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
|
|
77
|
+
|
|
78
|
+
## <kbd>function</kbd> `check_homebrew_update`
|
|
79
|
+
|
|
80
|
+
```python
|
|
81
|
+
check_homebrew_update(current_version: str) → Optional[Tuple[bool, str]]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Check if a Homebrew update is available.
|
|
85
|
+
|
|
86
|
+
Tries brew outdated command first, falls back to GitHub formula.
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
**Args:**
|
|
91
|
+
|
|
92
|
+
- <b>`current_version`</b>: Current installed version
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
**Returns:**
|
|
97
|
+
Tuple of (has_update, latest_version) if check succeeds, None on failure
|
|
98
|
+
|
|
99
|
+
|
|
@@ -16,6 +16,8 @@ Welcome to the API documentation for rxiv-maker.
|
|
|
16
16
|
- [utils.citation_utils.py](utils_citation_utils.py.md)
|
|
17
17
|
- [utils.email_encoder.py](utils_email_encoder.py.md)
|
|
18
18
|
- [utils.github.py](utils_github.py.md)
|
|
19
|
+
- [utils.homebrew_checker.py](utils_homebrew_checker.py.md)
|
|
20
|
+
- [utils.install_detector.py](utils_install_detector.py.md)
|
|
19
21
|
- [utils.operation_ids.py](utils_operation_ids.py.md)
|
|
20
22
|
- [utils.platform.py](utils_platform.py.md)
|
|
21
23
|
- [utils.python_execution_reporter.py](utils_python_execution_reporter.py.md)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
|
|
3
|
+
<a href="https://github.com/henriqueslab/rxiv-maker/blob/main/src/src/rxiv_maker/utils/install_detector.py#L0"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
|
|
4
|
+
|
|
5
|
+
# <kbd>module</kbd> `install_detector.py`
|
|
6
|
+
Installation method detection for rxiv-maker.
|
|
7
|
+
|
|
8
|
+
Detects how rxiv-maker was installed (Homebrew, pipx, uv, pip, etc.) to provide appropriate upgrade instructions.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a href="https://github.com/henriqueslab/rxiv-maker/blob/main/src/src/rxiv_maker/utils/install_detector.py#L15"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
|
|
14
|
+
|
|
15
|
+
## <kbd>function</kbd> `detect_install_method`
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
detect_install_method() → Literal['homebrew', 'pipx', 'uv', 'pip-user', 'pip', 'dev', 'unknown']
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Detect how rxiv-maker was installed.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
**Returns:**
|
|
26
|
+
|
|
27
|
+
- <b>`Installation method`</b>: homebrew, pipx, uv, pip-user, pip, dev, or unknown
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
<a href="https://github.com/henriqueslab/rxiv-maker/blob/main/src/src/rxiv_maker/utils/install_detector.py#L84"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
|
|
33
|
+
|
|
34
|
+
## <kbd>function</kbd> `get_upgrade_command`
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
get_upgrade_command(
|
|
38
|
+
install_method: Literal['homebrew', 'pipx', 'uv', 'pip-user', 'pip', 'dev', 'unknown']
|
|
39
|
+
) → str
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Get the appropriate upgrade command for the installation method.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
**Args:**
|
|
47
|
+
|
|
48
|
+
- <b>`install_method`</b>: The detected installation method
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
**Returns:**
|
|
53
|
+
Upgrade command string
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
<a href="https://github.com/henriqueslab/rxiv-maker/blob/main/src/src/rxiv_maker/utils/install_detector.py#L106"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
|
|
59
|
+
|
|
60
|
+
## <kbd>function</kbd> `get_friendly_install_name`
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
get_friendly_install_name(
|
|
64
|
+
install_method: Literal['homebrew', 'pipx', 'uv', 'pip-user', 'pip', 'dev', 'unknown']
|
|
65
|
+
) → str
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Get a user-friendly name for the installation method.
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
**Args:**
|
|
73
|
+
|
|
74
|
+
- <b>`install_method`</b>: The detected installation method
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
**Returns:**
|
|
79
|
+
Friendly name string
|
|
80
|
+
|
|
81
|
+
|
|
@@ -8,7 +8,7 @@ from ..framework import InitCommand
|
|
|
8
8
|
@click.command(context_settings={"help_option_names": ["-h", "--help"]})
|
|
9
9
|
@click.argument("manuscript_path", type=click.Path(), required=False)
|
|
10
10
|
@click.option("--force", "-f", is_flag=True, help="Force overwrite existing files")
|
|
11
|
-
@click.option("--no-interactive", is_flag=True, help="
|
|
11
|
+
@click.option("--no-interactive", is_flag=True, hidden=True, help="Deprecated (command is always non-interactive)")
|
|
12
12
|
@click.option(
|
|
13
13
|
"--validate", is_flag=True, help="Run validation after initialization to ensure template builds correctly"
|
|
14
14
|
)
|
|
@@ -25,6 +25,9 @@ def init(
|
|
|
25
25
|
**MANUSCRIPT_PATH**: Directory to create for your manuscript.
|
|
26
26
|
Defaults to MANUSCRIPT/
|
|
27
27
|
|
|
28
|
+
This command is fully non-interactive and uses sensible defaults for all values.
|
|
29
|
+
You can customize the manuscript details by editing 00_CONFIG.yml after initialization.
|
|
30
|
+
|
|
28
31
|
Creates all required files including configuration, main content, supplementary
|
|
29
32
|
information, bibliography, and figure directory with example scripts.
|
|
30
33
|
|
|
@@ -45,10 +48,6 @@ def init(
|
|
|
45
48
|
**Initialize and validate template builds correctly:**
|
|
46
49
|
|
|
47
50
|
$ rxiv init --validate
|
|
48
|
-
|
|
49
|
-
**Non-interactive initialization:**
|
|
50
|
-
|
|
51
|
-
$ rxiv init --no-interactive
|
|
52
51
|
"""
|
|
53
52
|
# Use centralized InitCommand framework - eliminates 250+ lines of boilerplate!
|
|
54
53
|
command = InitCommand()
|
|
@@ -5,12 +5,12 @@ import subprocess
|
|
|
5
5
|
import sys
|
|
6
6
|
|
|
7
7
|
import click
|
|
8
|
+
from henriqueslab_updater import force_update_check
|
|
8
9
|
from rich.console import Console
|
|
9
10
|
|
|
10
11
|
from ... import __version__
|
|
11
12
|
from ...utils.changelog_parser import fetch_and_format_changelog
|
|
12
13
|
from ...utils.install_detector import detect_install_method, get_friendly_install_name, get_upgrade_command
|
|
13
|
-
from ...utils.update_checker import force_update_check
|
|
14
14
|
from ..interactive import prompt_confirm
|
|
15
15
|
|
|
16
16
|
console = Console()
|
|
@@ -210,6 +210,9 @@ class BaseCommand(ABC):
|
|
|
210
210
|
return self.execute_operation(**kwargs)
|
|
211
211
|
|
|
212
212
|
except CommandExecutionError as e:
|
|
213
|
+
# Print error message to stderr before exiting
|
|
214
|
+
error_console = Console(stderr=True)
|
|
215
|
+
error_console.print(f"❌ Error: {e}", style="red")
|
|
213
216
|
sys.exit(e.exit_code)
|
|
214
217
|
except KeyboardInterrupt:
|
|
215
218
|
self.handle_keyboard_interrupt(operation_name)
|
|
@@ -50,44 +50,26 @@ class InitCommand(BaseCommand):
|
|
|
50
50
|
|
|
51
51
|
Args:
|
|
52
52
|
force: Force overwrite existing files
|
|
53
|
-
no_interactive:
|
|
53
|
+
no_interactive: Deprecated (command is always non-interactive)
|
|
54
54
|
validate: Run validation after initialization
|
|
55
55
|
template: Template type to use (default, minimal, journal, preprint)
|
|
56
56
|
"""
|
|
57
|
-
from rich.prompt import Prompt
|
|
58
|
-
|
|
59
57
|
# Get manuscript path from raw path (set during setup_common_options)
|
|
60
58
|
manuscript_path = self.raw_manuscript_path
|
|
61
59
|
|
|
62
60
|
manuscript_dir = Path(manuscript_path)
|
|
63
61
|
|
|
64
|
-
# Check if directory exists
|
|
62
|
+
# Check if directory exists and fail if --force not used
|
|
65
63
|
if manuscript_dir.exists() and not force:
|
|
66
|
-
|
|
67
|
-
overwrite = Prompt.ask(
|
|
68
|
-
f"Directory '{manuscript_path}' already exists. Overwrite?", choices=["y", "n"], default="n"
|
|
69
|
-
)
|
|
70
|
-
if overwrite == "n":
|
|
71
|
-
self.console.print("❌ Initialization cancelled", style="yellow")
|
|
72
|
-
return
|
|
73
|
-
else:
|
|
74
|
-
raise CommandExecutionError(f"Directory '{manuscript_path}' already exists. Use --force to overwrite.")
|
|
64
|
+
raise CommandExecutionError(f"Directory '{manuscript_path}' already exists. Use --force to overwrite.")
|
|
75
65
|
|
|
76
|
-
#
|
|
66
|
+
# Always use default values (non-interactive mode only)
|
|
77
67
|
title = "Your Manuscript Title"
|
|
78
68
|
author_name = "Your Name"
|
|
79
69
|
author_email = "your.email@example.com"
|
|
80
70
|
author_orcid = "0000-0000-0000-0000"
|
|
81
71
|
author_affiliation = "Your Institution"
|
|
82
72
|
|
|
83
|
-
if not no_interactive:
|
|
84
|
-
self.console.print("\n📝 Enter manuscript details (press Enter for defaults):")
|
|
85
|
-
title = Prompt.ask("Title", default=title)
|
|
86
|
-
author_name = Prompt.ask("Author name", default=author_name)
|
|
87
|
-
author_email = Prompt.ask("Author email", default=author_email)
|
|
88
|
-
author_orcid = Prompt.ask("Author ORCID", default=author_orcid)
|
|
89
|
-
author_affiliation = Prompt.ask("Author affiliation", default=author_affiliation)
|
|
90
|
-
|
|
91
73
|
with self.create_progress() as progress:
|
|
92
74
|
task = progress.add_task(f"Initializing manuscript (template: {template})...", total=2)
|
|
93
75
|
|
|
@@ -50,12 +50,29 @@ def generate_bst_file(format_type: str, output_dir: Path) -> Path:
|
|
|
50
50
|
format_string = BST_FORMAT_MAP[format_type]
|
|
51
51
|
|
|
52
52
|
# Find the template .bst file in the package
|
|
53
|
-
#
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
# Try multiple locations for development and installed configurations
|
|
54
|
+
possible_template_paths = [
|
|
55
|
+
# Installed package location (site-packages/rxiv_maker/tex/style/)
|
|
56
|
+
Path(__file__).parent.parent / "tex" / "style" / "rxiv_maker_style.bst",
|
|
57
|
+
# Development location (src/tex/style/)
|
|
58
|
+
Path(__file__).parent.parent.parent / "tex" / "style" / "rxiv_maker_style.bst",
|
|
59
|
+
# Alternative development location
|
|
60
|
+
Path(__file__).parent.parent.parent.parent / "src" / "tex" / "style" / "rxiv_maker_style.bst",
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
template_path = None
|
|
64
|
+
for path in possible_template_paths:
|
|
65
|
+
if path.exists():
|
|
66
|
+
template_path = path
|
|
67
|
+
break
|
|
68
|
+
|
|
69
|
+
if template_path is None:
|
|
70
|
+
searched_paths = "\n".join(f" - {p}" for p in possible_template_paths)
|
|
71
|
+
raise FileNotFoundError(
|
|
72
|
+
f"Template .bst file not found.\n"
|
|
73
|
+
f"Searched locations:\n{searched_paths}\n"
|
|
74
|
+
f"This may indicate a corrupted installation."
|
|
75
|
+
)
|
|
59
76
|
|
|
60
77
|
# Read the template file
|
|
61
78
|
try:
|