zebra-day 0.3.9.1__tar.gz → 2.0.0__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.
- zebra_day-2.0.0/MANIFEST.in +25 -0
- zebra_day-2.0.0/MODERNIZE.md +76 -0
- zebra_day-2.0.0/PKG-INFO +847 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/README.md +305 -55
- zebra_day-2.0.0/pyproject.toml +147 -0
- zebra_day-2.0.0/requirements-dev.txt +15 -0
- zebra_day-2.0.0/requirements.txt +11 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/setup.py +13 -1
- zebra_day-2.0.0/tests/test_auth.py +58 -0
- zebra_day-2.0.0/tests/test_cli.py +110 -0
- zebra_day-2.0.0/tests/test_core_functions.py +184 -0
- zebra_day-2.0.0/tests/test_exceptions.py +113 -0
- zebra_day-2.0.0/tests/test_logging.py +66 -0
- zebra_day-2.0.0/tests/test_paths.py +62 -0
- zebra_day-2.0.0/tests/test_setup_printers_json.py +83 -0
- zebra_day-2.0.0/tests/test_web_server.py +365 -0
- zebra_day-2.0.0/zebra_day/__init__.py +35 -0
- zebra_day-2.0.0/zebra_day/cli/__init__.py +240 -0
- zebra_day-2.0.0/zebra_day/cli/cognito.py +121 -0
- zebra_day-2.0.0/zebra_day/cli/gui.py +338 -0
- zebra_day-2.0.0/zebra_day/cli/printer.py +168 -0
- zebra_day-2.0.0/zebra_day/cli/template.py +176 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:50:25.022846_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:50:25.033657_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:50:25.039597_printer_config.json +3 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:50:25.047295_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:50:25.055804_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:50:25.061337_printer_config.json +3 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.073326_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.081950_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.088251_printer_config.json +3 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.096501_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.104767_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.110364_printer_config.json +3 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.118239_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.125950_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.349866_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.361085_printer_config.json +3 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.558323_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:24.565756_printer_config.json +3 -0
- zebra_day-0.3.9.1/zebra_day/etc/printer_config.template.json → zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:29.739070_printer_config.json +2 -2
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:29.753796_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:29.760201_printer_config.json +3 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:29.768747_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:29.775312_printer_config.json +3 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:29.782533_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:29.789287_printer_config.json +1 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:29.794230_printer_config.json +3 -0
- zebra_day-2.0.0/zebra_day/etc/old_printer_config/2026-02-01_01:51:29.800021_printer_config.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/printer_config.json +4 -0
- zebra_day-2.0.0/zebra_day/etc/printer_config.template.json +24 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers0.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers120.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers145.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers207.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers374.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers383.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers450.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers469.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers485.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers504.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers531.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers540.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers542.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers552.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers608.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers657.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers715.json +10 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers838.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers839.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers933.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers957.json +5 -0
- zebra_day-2.0.0/zebra_day/etc/tmp_printers972.json +10 -0
- zebra_day-2.0.0/zebra_day/exceptions.py +88 -0
- zebra_day-2.0.0/zebra_day/files/.hold +0 -0
- zebra_day-2.0.0/zebra_day/files/blank_preview.png +0 -0
- zebra_day-2.0.0/zebra_day/files/corners_20cmX30cm_preview.png +0 -0
- zebra_day-2.0.0/zebra_day/files/generic_2inX1in_preview.png +0 -0
- zebra_day-2.0.0/zebra_day/files/hold +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_12020.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_12352.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_15472.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_17696.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_23477.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_24493.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_28157.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_30069.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_35832.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_36400.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_40816.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_47791.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_47799.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_49564.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_53848.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_55588.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_58809.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_62542.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_67242.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_89893.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_91597.png +0 -0
- zebra_day-2.0.0/zebra_day/files/test_png_93633.png +0 -0
- zebra_day-2.0.0/zebra_day/files/tmpbjo3k7q1.png +0 -0
- zebra_day-2.0.0/zebra_day/files/tmpigtr4pwy.png +0 -0
- zebra_day-2.0.0/zebra_day/files/tube_20mmX30mmA_preview.png +0 -0
- zebra_day-2.0.0/zebra_day/files/zpl_label_tube_2inX1in_2026-02-01_01:51:24.370964.png +0 -0
- zebra_day-2.0.0/zebra_day/logging_config.py +74 -0
- zebra_day-2.0.0/zebra_day/logs/.hold +0 -0
- zebra_day-2.0.0/zebra_day/logs/print_requests.log +2 -0
- zebra_day-2.0.0/zebra_day/paths.py +143 -0
- zebra_day-2.0.0/zebra_day/print_mgr.py +664 -0
- zebra_day-2.0.0/zebra_day/static/favicon.svg +20 -0
- zebra_day-2.0.0/zebra_day/static/js/zebra_modern.js +172 -0
- zebra_day-2.0.0/zebra_day/static/lsmc.css +354 -0
- zebra_day-2.0.0/zebra_day/static/zebra_modern.css +771 -0
- zebra_day-2.0.0/zebra_day/templates/modern/base.html +98 -0
- zebra_day-2.0.0/zebra_day/templates/modern/config.html +141 -0
- zebra_day-2.0.0/zebra_day/templates/modern/config_backups.html +59 -0
- zebra_day-2.0.0/zebra_day/templates/modern/config_editor.html +95 -0
- zebra_day-2.0.0/zebra_day/templates/modern/config_new.html +93 -0
- zebra_day-2.0.0/zebra_day/templates/modern/dashboard.html +160 -0
- zebra_day-2.0.0/zebra_day/templates/modern/print_request.html +145 -0
- zebra_day-2.0.0/zebra_day/templates/modern/print_result.html +88 -0
- zebra_day-2.0.0/zebra_day/templates/modern/printer_detail.html +244 -0
- zebra_day-2.0.0/zebra_day/templates/modern/printers.html +144 -0
- zebra_day-2.0.0/zebra_day/templates/modern/save_result.html +46 -0
- zebra_day-2.0.0/zebra_day/templates/modern/template_editor.html +175 -0
- zebra_day-2.0.0/zebra_day/templates/modern/templates.html +122 -0
- zebra_day-2.0.0/zebra_day/web/__init__.py +9 -0
- zebra_day-2.0.0/zebra_day/web/app.py +248 -0
- zebra_day-2.0.0/zebra_day/web/auth.py +172 -0
- zebra_day-2.0.0/zebra_day/web/middleware.py +159 -0
- zebra_day-2.0.0/zebra_day/web/routers/__init__.py +2 -0
- zebra_day-2.0.0/zebra_day/web/routers/api.py +313 -0
- zebra_day-2.0.0/zebra_day/web/routers/ui.py +636 -0
- zebra_day-2.0.0/zebra_day/zpl_renderer.py +273 -0
- zebra_day-2.0.0/zebra_day.egg-info/PKG-INFO +847 -0
- zebra_day-2.0.0/zebra_day.egg-info/SOURCES.txt +186 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day.egg-info/entry_points.txt +1 -0
- zebra_day-2.0.0/zebra_day.egg-info/requires.txt +34 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day.egg-info/top_level.txt +0 -1
- zebra_day-0.3.9.1/PKG-INFO +0 -14
- zebra_day-0.3.9.1/tests/test_setup_printers_json.py +0 -64
- zebra_day-0.3.9.1/tests/test_web_server.py +0 -8
- zebra_day-0.3.9.1/zebra_day/bin/#print_zpl_from_file.py# +0 -16
- zebra_day-0.3.9.1/zebra_day/bin/#probe_zebra_printer.py# +0 -6
- zebra_day-0.3.9.1/zebra_day/bin/check_sgd_wml.py +0 -32
- zebra_day-0.3.9.1/zebra_day/bin/fetch_zebra_config.py +0 -15
- zebra_day-0.3.9.1/zebra_day/bin/generate_coord_grid_zpl.py +0 -50
- zebra_day-0.3.9.1/zebra_day/bin/print_zpl_from_file.py +0 -21
- zebra_day-0.3.9.1/zebra_day/bin/probe_new_label_dimensions.py +0 -75
- zebra_day-0.3.9.1/zebra_day/bin/probe_zebra_w_sgd.py +0 -33
- zebra_day-0.3.9.1/zebra_day/bin/reset_zebra_custom_menus.py +0 -30
- zebra_day-0.3.9.1/zebra_day/bin/scan_for_networed_zebra_printers.py +0 -23
- zebra_day-0.3.9.1/zebra_day/bin/scan_for_networed_zebra_printers_arp_scan.sh +0 -1
- zebra_day-0.3.9.1/zebra_day/bin/scan_for_networed_zebra_printers_curl.sh +0 -30
- zebra_day-0.3.9.1/zebra_day/bin/set_no_wml.py +0 -21
- zebra_day-0.3.9.1/zebra_day/bin/set_zebra_ip_w_sgd.py +0 -33
- zebra_day-0.3.9.1/zebra_day/bin/zserve.py +0 -1062
- zebra_day-0.3.9.1/zebra_day/etc/printer_config.json +0 -76
- zebra_day-0.3.9.1/zebra_day/logs/print_requests.log +0 -1238
- zebra_day-0.3.9.1/zebra_day/print_mgr.py +0 -456
- zebra_day-0.3.9.1/zebra_day.egg-info/PKG-INFO +0 -14
- zebra_day-0.3.9.1/zebra_day.egg-info/SOURCES.txt +0 -75
- zebra_day-0.3.9.1/zebra_day.egg-info/requires.txt +0 -6
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/LICENSE +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/setup.cfg +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/tests/__init__.py +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/tests/test_creating_labels.py +0 -0
- {zebra_day-0.3.9.1/zebra_day → zebra_day-2.0.0/zebra_day/bin}/__init__.py +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/cmd_mgr.py +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/Monoid-Regular-HalfTight-Dollar-0-1-l.ttf +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/blank.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/cornersStripOf4Squares_1inX1in.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/corners_1inX2in.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/corners_20cmX30cm.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/corners_smallTube.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/corners_unspecifiedDimensions.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/generic_2inX1in.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/plate_1inX0.25in.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/plate_1inX0.25inHD.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/smallTubeWdotHD_prod.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/smallTubeWdot_corners.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/smallTubeWdot_prod.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/smallTubeWdot_prodAlt1.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/smallTubeWdot_prodAlt1b.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/smallTubeWdot_prodV2.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/smallTubeWdot_reagent.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/stripOf4Squares_1inX1in.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/test_800dX800dCoordinateArray.zpl +0 -0
- /zebra_day-0.3.9.1/zebra_day/bin/__init__.py → /zebra_day-2.0.0/zebra_day/etc/label_styles/tmps/.hold +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/tmps/tmp_zpl_templates.here +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/tube_20mmX30mmA.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/tube_2inX0.3in.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/tube_2inX0.5in.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/tube_2inX0.5inHD.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/tube_2inX1in.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/tube_2inX1inHD.zpl +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/etc/label_styles/tube_2inX1inHDv3.zpl +0 -0
- /zebra_day-0.3.9.1/zebra_day/files/hold → /zebra_day-2.0.0/zebra_day/etc/old_printer_config/.hold +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/datschund.css +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/datschund.png +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/daylily.png +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/general.css +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/moon.jpeg +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/oakland.css +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/petrichor.css +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/popday_daylily.css +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/style.css +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/triangles.css +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/tron.css +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day/static/zebras.css +0 -0
- {zebra_day-0.3.9.1 → zebra_day-2.0.0}/zebra_day.egg-info/dependency_links.txt +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Include documentation
|
|
2
|
+
include README.md
|
|
3
|
+
include LICENSE
|
|
4
|
+
include MODERNIZE.md
|
|
5
|
+
|
|
6
|
+
# Include package data
|
|
7
|
+
recursive-include zebra_day/bin *
|
|
8
|
+
recursive-include zebra_day/etc *
|
|
9
|
+
recursive-include zebra_day/static *
|
|
10
|
+
recursive-include zebra_day/files *
|
|
11
|
+
recursive-include zebra_day/logs *
|
|
12
|
+
|
|
13
|
+
# Include requirements files
|
|
14
|
+
include requirements.txt
|
|
15
|
+
include requirements-dev.txt
|
|
16
|
+
include pyproject.toml
|
|
17
|
+
|
|
18
|
+
# Exclude compiled files and caches
|
|
19
|
+
global-exclude *.pyc
|
|
20
|
+
global-exclude *.pyo
|
|
21
|
+
global-exclude __pycache__
|
|
22
|
+
global-exclude *.so
|
|
23
|
+
global-exclude .git*
|
|
24
|
+
global-exclude .DS_Store
|
|
25
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# MODERNIZE.md - zebra_day Modernization Status
|
|
2
|
+
|
|
3
|
+
> **Status**: ALL PHASES COMPLETE as of 1.0.0
|
|
4
|
+
|
|
5
|
+
This document tracked the modernization of zebra_day from 0.5.0 to 1.0.0.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Completed Modernization Summary
|
|
10
|
+
|
|
11
|
+
### Phase 0 - Hygiene + Guardrails
|
|
12
|
+
- [x] Removed duplicate dependencies
|
|
13
|
+
- [x] Moved dev-only deps to optional extras
|
|
14
|
+
- [x] Implemented structured logging
|
|
15
|
+
- [x] Created custom exceptions
|
|
16
|
+
- [x] Added comprehensive unit tests (16 tests passing)
|
|
17
|
+
|
|
18
|
+
### Phase 1 - Packaging Modernization
|
|
19
|
+
- [x] Migrated to pyproject.toml (PEP 517/518)
|
|
20
|
+
- [x] Defined optional extras: dev, lint, docs, auth, all
|
|
21
|
+
- [x] Package builds correctly as wheel and sdist
|
|
22
|
+
- [x] PyPI-ready (twine check passes)
|
|
23
|
+
|
|
24
|
+
### Phase 2 - XDG Filesystem Safety
|
|
25
|
+
- [x] Implemented zebra_day/paths.py with XDG Base Directory support
|
|
26
|
+
- [x] Config: ~/.config/zebra_day/ (Linux) or ~/Library/Preferences/zebra_day/ (macOS)
|
|
27
|
+
- [x] Data: ~/.local/share/zebra_day/ (Linux) or ~/Library/Application Support/zebra_day/ (macOS)
|
|
28
|
+
- [x] Logs: ~/.local/state/zebra_day/ (Linux) or ~/Library/Logs/zebra_day/ (macOS)
|
|
29
|
+
- [x] Replaced os.system() calls with pathlib + shutil
|
|
30
|
+
|
|
31
|
+
### Phase 3 - Web Stack Modernization
|
|
32
|
+
- [x] Migrated from CherryPy to FastAPI + Uvicorn
|
|
33
|
+
- [x] Implemented Jinja2 templates (26 templates total)
|
|
34
|
+
- [x] Created versioned API (/api/v1/...)
|
|
35
|
+
- [x] Added OpenAPI documentation (/docs, /redoc)
|
|
36
|
+
- [x] Implemented optional Cognito authentication
|
|
37
|
+
- [x] Created modern UI with Ursa-inspired design system
|
|
38
|
+
- [x] Preserved legacy UI at /legacy prefix
|
|
39
|
+
|
|
40
|
+
### Phase 4 - Observability
|
|
41
|
+
- [x] Added health endpoints (/healthz, /readyz)
|
|
42
|
+
- [x] Implemented request logging middleware
|
|
43
|
+
- [x] Added structured logging with timestamps
|
|
44
|
+
|
|
45
|
+
### Phase 5 - CI/CD
|
|
46
|
+
- [x] GitHub Actions workflow with lint, test, build, publish jobs
|
|
47
|
+
- [x] Python version matrix (3.10, 3.11, 3.12, 3.13)
|
|
48
|
+
- [x] Ruff linting, Black formatting, mypy type checking
|
|
49
|
+
- [x] Automated PyPI publishing on release
|
|
50
|
+
|
|
51
|
+
### Bonus: Local ZPL Rendering
|
|
52
|
+
- [x] Replaced external Labelary API with local renderer
|
|
53
|
+
- [x] Implemented zebra_day/zpl_renderer.py using Pillow + zint-bindings
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Commands Reference
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Development
|
|
61
|
+
pytest -v # Run tests
|
|
62
|
+
ruff check zebra_day tests # Lint
|
|
63
|
+
black --check zebra_day tests # Format check
|
|
64
|
+
mypy zebra_day # Type check
|
|
65
|
+
|
|
66
|
+
# CLI
|
|
67
|
+
zday --help # Show all commands
|
|
68
|
+
zday info # Show config paths and status
|
|
69
|
+
zday bootstrap # First-time setup
|
|
70
|
+
zday gui start # Start web server
|
|
71
|
+
zday gui stop # Stop web server
|
|
72
|
+
|
|
73
|
+
# Build
|
|
74
|
+
python -m build # Build wheel and sdist
|
|
75
|
+
twine check dist/* # Verify package
|
|
76
|
+
```
|