zebra-day 0.0.37__py3-none-any.whl → 1.0.2__py3-none-any.whl
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/__init__.py +35 -0
- zebra_day/bin/__init__.py +0 -0
- zebra_day/bin/fetch_zebra_config.py +15 -0
- zebra_day/bin/generate_coord_grid_zpl.py +50 -0
- zebra_day/bin/print_zpl_from_file.py +21 -0
- zebra_day/bin/probe_new_label_dimensions.py +75 -0
- zebra_day/bin/scan_for_networed_zebra_printers_arp_scan.sh +1 -0
- zebra_day/bin/scan_for_networed_zebra_printers_curl.sh +30 -0
- zebra_day/bin/zserve.py +701 -259
- zebra_day/cli/__init__.py +240 -0
- zebra_day/cli/cognito.py +121 -0
- zebra_day/cli/gui.py +255 -0
- zebra_day/cli/printer.py +168 -0
- zebra_day/cli/template.py +176 -0
- zebra_day/cmd_mgr.py +35 -0
- zebra_day/etc/Monoid-Regular-HalfTight-Dollar-0-1-l.ttf +0 -0
- zebra_day/etc/label_styles/blank.zpl +0 -0
- zebra_day/etc/label_styles/cornersStripOf4Squares_1inX1in.zpl +55 -0
- zebra_day/etc/label_styles/corners_1inX2in.zpl +28 -0
- zebra_day/etc/label_styles/corners_20cmX30cm.zpl +6 -0
- zebra_day/etc/label_styles/corners_smallTube.zpl +7 -0
- zebra_day/etc/label_styles/corners_unspecifiedDimensions.zpl +15 -0
- zebra_day/etc/label_styles/generic_2inX1in.zpl +21 -0
- zebra_day/etc/label_styles/plate_1inX0.25in.zpl +9 -0
- zebra_day/etc/label_styles/plate_1inX0.25inHD.zpl +9 -0
- zebra_day/etc/label_styles/smallTubeWdotHD_prod.zpl +8 -0
- zebra_day/etc/label_styles/smallTubeWdot_corners.zpl +7 -0
- zebra_day/etc/label_styles/smallTubeWdot_prod.zpl +8 -0
- zebra_day/etc/label_styles/smallTubeWdot_prodAlt1.zpl +6 -0
- zebra_day/etc/label_styles/smallTubeWdot_prodAlt1b.zpl +3 -0
- zebra_day/etc/label_styles/smallTubeWdot_prodV2.zpl +8 -0
- zebra_day/etc/label_styles/smallTubeWdot_reagent.zpl +29 -0
- zebra_day/etc/label_styles/stripOf4Squares_1inX1in.zpl +32 -0
- zebra_day/etc/label_styles/test_800dX800dCoordinateArray.zpl +1 -0
- zebra_day/etc/label_styles/tmps/.hold +0 -0
- zebra_day/etc/label_styles/tmps/tmp_zpl_templates.here +0 -0
- zebra_day/etc/label_styles/tube_20mmX30mmA.zpl +7 -0
- zebra_day/etc/label_styles/tube_2inX0.3in.zpl +15 -0
- zebra_day/etc/label_styles/tube_2inX0.5in.zpl +15 -0
- zebra_day/etc/label_styles/tube_2inX0.5inHD.zpl +15 -0
- zebra_day/etc/label_styles/tube_2inX1in.zpl +25 -0
- zebra_day/etc/label_styles/tube_2inX1inHD.zpl +22 -0
- zebra_day/etc/label_styles/tube_2inX1inHDv3.zpl +21 -0
- zebra_day/etc/old_printer_config/.hold +0 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:50:25.022846_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:50:25.033657_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:50:25.039597_printer_config.json +3 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:50:25.047295_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:50:25.055804_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:50:25.061337_printer_config.json +3 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.073326_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.081950_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.088251_printer_config.json +3 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.096501_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.104767_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.110364_printer_config.json +3 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.118239_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.125950_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.349866_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.361085_printer_config.json +3 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.558323_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:24.565756_printer_config.json +3 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:29.739070_printer_config.json +16 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:29.753796_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:29.760201_printer_config.json +3 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:29.768747_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:29.775312_printer_config.json +3 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:29.782533_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:29.789287_printer_config.json +1 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:29.794230_printer_config.json +3 -0
- zebra_day/etc/old_printer_config/2026-02-01_01:51:29.800021_printer_config.json +5 -0
- zebra_day/etc/printer_config.json +16 -0
- zebra_day/etc/printer_config.template.json +16 -0
- zebra_day/etc/tmp_printers0.json +5 -0
- zebra_day/etc/tmp_printers374.json +5 -0
- zebra_day/etc/tmp_printers383.json +5 -0
- zebra_day/etc/tmp_printers450.json +5 -0
- zebra_day/etc/tmp_printers504.json +5 -0
- zebra_day/etc/tmp_printers608.json +5 -0
- zebra_day/etc/tmp_printers657.json +5 -0
- zebra_day/etc/tmp_printers838.json +5 -0
- zebra_day/etc/tmp_printers839.json +5 -0
- zebra_day/etc/tmp_printers933.json +5 -0
- zebra_day/etc/tmp_printers957.json +5 -0
- zebra_day/exceptions.py +88 -0
- zebra_day/files/.hold +0 -0
- zebra_day/files/hold +0 -0
- zebra_day/files/test_png_17696.png +0 -0
- zebra_day/files/test_png_23477.png +0 -0
- zebra_day/files/test_png_28157.png +0 -0
- zebra_day/files/test_png_35832.png +0 -0
- zebra_day/files/test_png_36400.png +0 -0
- zebra_day/files/test_png_40816.png +0 -0
- zebra_day/files/test_png_49564.png +0 -0
- zebra_day/files/test_png_53848.png +0 -0
- zebra_day/files/test_png_62542.png +0 -0
- zebra_day/files/test_png_91597.png +0 -0
- zebra_day/files/test_png_93633.png +0 -0
- zebra_day/files/tmpbjo3k7q1.png +0 -0
- zebra_day/files/tmpigtr4pwy.png +0 -0
- zebra_day/files/zpl_label_tube_2inX1in_2026-02-01_01:51:24.370964.png +0 -0
- zebra_day/logging_config.py +74 -0
- zebra_day/logs/.hold +0 -0
- zebra_day/logs/print_requests.log +2 -0
- zebra_day/paths.py +143 -0
- zebra_day/print_mgr.py +487 -103
- zebra_day/static/datschund.css +140 -0
- zebra_day/static/datschund.png +0 -0
- zebra_day/static/daylily.png +0 -0
- zebra_day/static/favicon.svg +20 -0
- zebra_day/static/general.css +99 -0
- zebra_day/static/js/zebra_modern.js +172 -0
- zebra_day/static/lsmc.css +354 -0
- zebra_day/static/moon.jpeg +0 -0
- zebra_day/static/oakland.css +197 -0
- zebra_day/static/petrichor.css +150 -0
- zebra_day/static/popday_daylily.css +140 -0
- zebra_day/static/style.css +183 -0
- zebra_day/static/triangles.css +122 -0
- zebra_day/static/tron.css +277 -0
- zebra_day/static/zebra_modern.css +771 -0
- zebra_day/static/zebras.css +176 -0
- zebra_day/templates/base.html +36 -0
- zebra_day/templates/bpr.html +72 -0
- zebra_day/templates/build_new_config.html +36 -0
- zebra_day/templates/build_print_request.html +32 -0
- zebra_day/templates/chg_ui_style.html +19 -0
- zebra_day/templates/edit_template.html +128 -0
- zebra_day/templates/edit_zpl.html +37 -0
- zebra_day/templates/index.html +82 -0
- zebra_day/templates/legacy/base.html +37 -0
- zebra_day/templates/legacy/bpr.html +72 -0
- zebra_day/templates/legacy/build_new_config.html +36 -0
- zebra_day/templates/legacy/build_print_request.html +32 -0
- zebra_day/templates/legacy/chg_ui_style.html +19 -0
- zebra_day/templates/legacy/edit_template.html +128 -0
- zebra_day/templates/legacy/edit_zpl.html +37 -0
- zebra_day/templates/legacy/index.html +82 -0
- zebra_day/templates/legacy/list_prior_configs.html +24 -0
- zebra_day/templates/legacy/print_result.html +30 -0
- zebra_day/templates/legacy/printer_details.html +25 -0
- zebra_day/templates/legacy/printer_status.html +70 -0
- zebra_day/templates/legacy/save_result.html +17 -0
- zebra_day/templates/legacy/send_print_request.html +34 -0
- zebra_day/templates/legacy/simple_print.html +94 -0
- zebra_day/templates/legacy/view_pstation_json.html +29 -0
- zebra_day/templates/list_prior_configs.html +24 -0
- zebra_day/templates/modern/base.html +98 -0
- zebra_day/templates/modern/config.html +141 -0
- zebra_day/templates/modern/dashboard.html +160 -0
- zebra_day/templates/modern/print_request.html +141 -0
- zebra_day/templates/modern/print_result.html +88 -0
- zebra_day/templates/modern/printer_detail.html +117 -0
- zebra_day/templates/modern/printers.html +133 -0
- zebra_day/templates/modern/save_result.html +46 -0
- zebra_day/templates/modern/template_editor.html +172 -0
- zebra_day/templates/modern/templates.html +122 -0
- zebra_day/templates/print_result.html +30 -0
- zebra_day/templates/printer_details.html +25 -0
- zebra_day/templates/printer_status.html +70 -0
- zebra_day/templates/save_result.html +17 -0
- zebra_day/templates/send_print_request.html +34 -0
- zebra_day/templates/simple_print.html +94 -0
- zebra_day/templates/view_pstation_json.html +29 -0
- zebra_day/web/__init__.py +9 -0
- zebra_day/web/app.py +171 -0
- zebra_day/web/auth.py +172 -0
- zebra_day/web/middleware.py +159 -0
- zebra_day/web/routers/__init__.py +2 -0
- zebra_day/web/routers/api.py +163 -0
- zebra_day/web/routers/ui.py +1051 -0
- zebra_day/zpl_renderer.py +273 -0
- zebra_day-1.0.2.dist-info/METADATA +786 -0
- zebra_day-1.0.2.dist-info/RECORD +179 -0
- {zebra_day-0.0.37.dist-info → zebra_day-1.0.2.dist-info}/WHEEL +1 -1
- zebra_day-1.0.2.dist-info/entry_points.txt +4 -0
- zebra_day/bin/te.py +0 -905
- zebra_day-0.0.37.dist-info/METADATA +0 -1177
- zebra_day-0.0.37.dist-info/RECORD +0 -10
- {zebra_day-0.0.37.dist-info → zebra_day-1.0.2.dist-info/licenses}/LICENSE +0 -0
- {zebra_day-0.0.37.dist-info → zebra_day-1.0.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
^XA^FO0,0^A0N,18,18^FD0^FS^FO0,20^A0N,18,18^FD0^FS^FO0,50^A0N,18,18^FD0^FS^FO0,70^A0N,18,18^FD50^FS^FO0,100^A0N,18,18^FD0^FS^FO0,120^A0N,18,18^FD100^FS^FO0,150^A0N,18,18^FD0^FS^FO0,170^A0N,18,18^FD150^FS^FO0,200^A0N,18,18^FD0^FS^FO0,220^A0N,18,18^FD200^FS^FO0,250^A0N,18,18^FD0^FS^FO0,270^A0N,18,18^FD250^FS^FO0,300^A0N,18,18^FD0^FS^FO0,320^A0N,18,18^FD300^FS^FO0,350^A0N,18,18^FD0^FS^FO0,370^A0N,18,18^FD350^FS^FO0,400^A0N,18,18^FD0^FS^FO0,420^A0N,18,18^FD400^FS^FO0,450^A0N,18,18^FD0^FS^FO0,470^A0N,18,18^FD450^FS^FO0,500^A0N,18,18^FD0^FS^FO0,520^A0N,18,18^FD500^FS^FO0,550^A0N,18,18^FD0^FS^FO0,570^A0N,18,18^FD550^FS^FO0,600^A0N,18,18^FD0^FS^FO0,620^A0N,18,18^FD600^FS^FO0,650^A0N,18,18^FD0^FS^FO0,670^A0N,18,18^FD650^FS^FO0,700^A0N,18,18^FD0^FS^FO0,720^A0N,18,18^FD700^FS^FO0,750^A0N,18,18^FD0^FS^FO0,770^A0N,18,18^FD750^FS^FO50,0^A0N,18,18^FD50^FS^FO50,20^A0N,18,18^FD0^FS^FO50,50^A0N,18,18^FD50^FS^FO50,70^A0N,18,18^FD50^FS^FO50,100^A0N,18,18^FD50^FS^FO50,120^A0N,18,18^FD100^FS^FO50,150^A0N,18,18^FD50^FS^FO50,170^A0N,18,18^FD150^FS^FO50,200^A0N,18,18^FD50^FS^FO50,220^A0N,18,18^FD200^FS^FO50,250^A0N,18,18^FD50^FS^FO50,270^A0N,18,18^FD250^FS^FO50,300^A0N,18,18^FD50^FS^FO50,320^A0N,18,18^FD300^FS^FO50,350^A0N,18,18^FD50^FS^FO50,370^A0N,18,18^FD350^FS^FO50,400^A0N,18,18^FD50^FS^FO50,420^A0N,18,18^FD400^FS^FO50,450^A0N,18,18^FD50^FS^FO50,470^A0N,18,18^FD450^FS^FO50,500^A0N,18,18^FD50^FS^FO50,520^A0N,18,18^FD500^FS^FO50,550^A0N,18,18^FD50^FS^FO50,570^A0N,18,18^FD550^FS^FO50,600^A0N,18,18^FD50^FS^FO50,620^A0N,18,18^FD600^FS^FO50,650^A0N,18,18^FD50^FS^FO50,670^A0N,18,18^FD650^FS^FO50,700^A0N,18,18^FD50^FS^FO50,720^A0N,18,18^FD700^FS^FO50,750^A0N,18,18^FD50^FS^FO50,770^A0N,18,18^FD750^FS^FO100,0^A0N,18,18^FD100^FS^FO100,20^A0N,18,18^FD0^FS^FO100,50^A0N,18,18^FD100^FS^FO100,70^A0N,18,18^FD50^FS^FO100,100^A0N,18,18^FD100^FS^FO100,120^A0N,18,18^FD100^FS^FO100,150^A0N,18,18^FD100^FS^FO100,170^A0N,18,18^FD150^FS^FO100,200^A0N,18,18^FD100^FS^FO100,220^A0N,18,18^FD200^FS^FO100,250^A0N,18,18^FD100^FS^FO100,270^A0N,18,18^FD250^FS^FO100,300^A0N,18,18^FD100^FS^FO100,320^A0N,18,18^FD300^FS^FO100,350^A0N,18,18^FD100^FS^FO100,370^A0N,18,18^FD350^FS^FO100,400^A0N,18,18^FD100^FS^FO100,420^A0N,18,18^FD400^FS^FO100,450^A0N,18,18^FD100^FS^FO100,470^A0N,18,18^FD450^FS^FO100,500^A0N,18,18^FD100^FS^FO100,520^A0N,18,18^FD500^FS^FO100,550^A0N,18,18^FD100^FS^FO100,570^A0N,18,18^FD550^FS^FO100,600^A0N,18,18^FD100^FS^FO100,620^A0N,18,18^FD600^FS^FO100,650^A0N,18,18^FD100^FS^FO100,670^A0N,18,18^FD650^FS^FO100,700^A0N,18,18^FD100^FS^FO100,720^A0N,18,18^FD700^FS^FO100,750^A0N,18,18^FD100^FS^FO100,770^A0N,18,18^FD750^FS^FO150,0^A0N,18,18^FD150^FS^FO150,20^A0N,18,18^FD0^FS^FO150,50^A0N,18,18^FD150^FS^FO150,70^A0N,18,18^FD50^FS^FO150,100^A0N,18,18^FD150^FS^FO150,120^A0N,18,18^FD100^FS^FO150,150^A0N,18,18^FD150^FS^FO150,170^A0N,18,18^FD150^FS^FO150,200^A0N,18,18^FD150^FS^FO150,220^A0N,18,18^FD200^FS^FO150,250^A0N,18,18^FD150^FS^FO150,270^A0N,18,18^FD250^FS^FO150,300^A0N,18,18^FD150^FS^FO150,320^A0N,18,18^FD300^FS^FO150,350^A0N,18,18^FD150^FS^FO150,370^A0N,18,18^FD350^FS^FO150,400^A0N,18,18^FD150^FS^FO150,420^A0N,18,18^FD400^FS^FO150,450^A0N,18,18^FD150^FS^FO150,470^A0N,18,18^FD450^FS^FO150,500^A0N,18,18^FD150^FS^FO150,520^A0N,18,18^FD500^FS^FO150,550^A0N,18,18^FD150^FS^FO150,570^A0N,18,18^FD550^FS^FO150,600^A0N,18,18^FD150^FS^FO150,620^A0N,18,18^FD600^FS^FO150,650^A0N,18,18^FD150^FS^FO150,670^A0N,18,18^FD650^FS^FO150,700^A0N,18,18^FD150^FS^FO150,720^A0N,18,18^FD700^FS^FO150,750^A0N,18,18^FD150^FS^FO150,770^A0N,18,18^FD750^FS^FO200,0^A0N,18,18^FD200^FS^FO200,20^A0N,18,18^FD0^FS^FO200,50^A0N,18,18^FD200^FS^FO200,70^A0N,18,18^FD50^FS^FO200,100^A0N,18,18^FD200^FS^FO200,120^A0N,18,18^FD100^FS^FO200,150^A0N,18,18^FD200^FS^FO200,170^A0N,18,18^FD150^FS^FO200,200^A0N,18,18^FD200^FS^FO200,220^A0N,18,18^FD200^FS^FO200,250^A0N,18,18^FD200^FS^FO200,270^A0N,18,18^FD250^FS^FO200,300^A0N,18,18^FD200^FS^FO200,320^A0N,18,18^FD300^FS^FO200,350^A0N,18,18^FD200^FS^FO200,370^A0N,18,18^FD350^FS^FO200,400^A0N,18,18^FD200^FS^FO200,420^A0N,18,18^FD400^FS^FO200,450^A0N,18,18^FD200^FS^FO200,470^A0N,18,18^FD450^FS^FO200,500^A0N,18,18^FD200^FS^FO200,520^A0N,18,18^FD500^FS^FO200,550^A0N,18,18^FD200^FS^FO200,570^A0N,18,18^FD550^FS^FO200,600^A0N,18,18^FD200^FS^FO200,620^A0N,18,18^FD600^FS^FO200,650^A0N,18,18^FD200^FS^FO200,670^A0N,18,18^FD650^FS^FO200,700^A0N,18,18^FD200^FS^FO200,720^A0N,18,18^FD700^FS^FO200,750^A0N,18,18^FD200^FS^FO200,770^A0N,18,18^FD750^FS^FO250,0^A0N,18,18^FD250^FS^FO250,20^A0N,18,18^FD0^FS^FO250,50^A0N,18,18^FD250^FS^FO250,70^A0N,18,18^FD50^FS^FO250,100^A0N,18,18^FD250^FS^FO250,120^A0N,18,18^FD100^FS^FO250,150^A0N,18,18^FD250^FS^FO250,170^A0N,18,18^FD150^FS^FO250,200^A0N,18,18^FD250^FS^FO250,220^A0N,18,18^FD200^FS^FO250,250^A0N,18,18^FD250^FS^FO250,270^A0N,18,18^FD250^FS^FO250,300^A0N,18,18^FD250^FS^FO250,320^A0N,18,18^FD300^FS^FO250,350^A0N,18,18^FD250^FS^FO250,370^A0N,18,18^FD350^FS^FO250,400^A0N,18,18^FD250^FS^FO250,420^A0N,18,18^FD400^FS^FO250,450^A0N,18,18^FD250^FS^FO250,470^A0N,18,18^FD450^FS^FO250,500^A0N,18,18^FD250^FS^FO250,520^A0N,18,18^FD500^FS^FO250,550^A0N,18,18^FD250^FS^FO250,570^A0N,18,18^FD550^FS^FO250,600^A0N,18,18^FD250^FS^FO250,620^A0N,18,18^FD600^FS^FO250,650^A0N,18,18^FD250^FS^FO250,670^A0N,18,18^FD650^FS^FO250,700^A0N,18,18^FD250^FS^FO250,720^A0N,18,18^FD700^FS^FO250,750^A0N,18,18^FD250^FS^FO250,770^A0N,18,18^FD750^FS^FO300,0^A0N,18,18^FD300^FS^FO300,20^A0N,18,18^FD0^FS^FO300,50^A0N,18,18^FD300^FS^FO300,70^A0N,18,18^FD50^FS^FO300,100^A0N,18,18^FD300^FS^FO300,120^A0N,18,18^FD100^FS^FO300,150^A0N,18,18^FD300^FS^FO300,170^A0N,18,18^FD150^FS^FO300,200^A0N,18,18^FD300^FS^FO300,220^A0N,18,18^FD200^FS^FO300,250^A0N,18,18^FD300^FS^FO300,270^A0N,18,18^FD250^FS^FO300,300^A0N,18,18^FD300^FS^FO300,320^A0N,18,18^FD300^FS^FO300,350^A0N,18,18^FD300^FS^FO300,370^A0N,18,18^FD350^FS^FO300,400^A0N,18,18^FD300^FS^FO300,420^A0N,18,18^FD400^FS^FO300,450^A0N,18,18^FD300^FS^FO300,470^A0N,18,18^FD450^FS^FO300,500^A0N,18,18^FD300^FS^FO300,520^A0N,18,18^FD500^FS^FO300,550^A0N,18,18^FD300^FS^FO300,570^A0N,18,18^FD550^FS^FO300,600^A0N,18,18^FD300^FS^FO300,620^A0N,18,18^FD600^FS^FO300,650^A0N,18,18^FD300^FS^FO300,670^A0N,18,18^FD650^FS^FO300,700^A0N,18,18^FD300^FS^FO300,720^A0N,18,18^FD700^FS^FO300,750^A0N,18,18^FD300^FS^FO300,770^A0N,18,18^FD750^FS^FO350,0^A0N,18,18^FD350^FS^FO350,20^A0N,18,18^FD0^FS^FO350,50^A0N,18,18^FD350^FS^FO350,70^A0N,18,18^FD50^FS^FO350,100^A0N,18,18^FD350^FS^FO350,120^A0N,18,18^FD100^FS^FO350,150^A0N,18,18^FD350^FS^FO350,170^A0N,18,18^FD150^FS^FO350,200^A0N,18,18^FD350^FS^FO350,220^A0N,18,18^FD200^FS^FO350,250^A0N,18,18^FD350^FS^FO350,270^A0N,18,18^FD250^FS^FO350,300^A0N,18,18^FD350^FS^FO350,320^A0N,18,18^FD300^FS^FO350,350^A0N,18,18^FD350^FS^FO350,370^A0N,18,18^FD350^FS^FO350,400^A0N,18,18^FD350^FS^FO350,420^A0N,18,18^FD400^FS^FO350,450^A0N,18,18^FD350^FS^FO350,470^A0N,18,18^FD450^FS^FO350,500^A0N,18,18^FD350^FS^FO350,520^A0N,18,18^FD500^FS^FO350,550^A0N,18,18^FD350^FS^FO350,570^A0N,18,18^FD550^FS^FO350,600^A0N,18,18^FD350^FS^FO350,620^A0N,18,18^FD600^FS^FO350,650^A0N,18,18^FD350^FS^FO350,670^A0N,18,18^FD650^FS^FO350,700^A0N,18,18^FD350^FS^FO350,720^A0N,18,18^FD700^FS^FO350,750^A0N,18,18^FD350^FS^FO350,770^A0N,18,18^FD750^FS^FO400,0^A0N,18,18^FD400^FS^FO400,20^A0N,18,18^FD0^FS^FO400,50^A0N,18,18^FD400^FS^FO400,70^A0N,18,18^FD50^FS^FO400,100^A0N,18,18^FD400^FS^FO400,120^A0N,18,18^FD100^FS^FO400,150^A0N,18,18^FD400^FS^FO400,170^A0N,18,18^FD150^FS^FO400,200^A0N,18,18^FD400^FS^FO400,220^A0N,18,18^FD200^FS^FO400,250^A0N,18,18^FD400^FS^FO400,270^A0N,18,18^FD250^FS^FO400,300^A0N,18,18^FD400^FS^FO400,320^A0N,18,18^FD300^FS^FO400,350^A0N,18,18^FD400^FS^FO400,370^A0N,18,18^FD350^FS^FO400,400^A0N,18,18^FD400^FS^FO400,420^A0N,18,18^FD400^FS^FO400,450^A0N,18,18^FD400^FS^FO400,470^A0N,18,18^FD450^FS^FO400,500^A0N,18,18^FD400^FS^FO400,520^A0N,18,18^FD500^FS^FO400,550^A0N,18,18^FD400^FS^FO400,570^A0N,18,18^FD550^FS^FO400,600^A0N,18,18^FD400^FS^FO400,620^A0N,18,18^FD600^FS^FO400,650^A0N,18,18^FD400^FS^FO400,670^A0N,18,18^FD650^FS^FO400,700^A0N,18,18^FD400^FS^FO400,720^A0N,18,18^FD700^FS^FO400,750^A0N,18,18^FD400^FS^FO400,770^A0N,18,18^FD750^FS^FO450,0^A0N,18,18^FD450^FS^FO450,20^A0N,18,18^FD0^FS^FO450,50^A0N,18,18^FD450^FS^FO450,70^A0N,18,18^FD50^FS^FO450,100^A0N,18,18^FD450^FS^FO450,120^A0N,18,18^FD100^FS^FO450,150^A0N,18,18^FD450^FS^FO450,170^A0N,18,18^FD150^FS^FO450,200^A0N,18,18^FD450^FS^FO450,220^A0N,18,18^FD200^FS^FO450,250^A0N,18,18^FD450^FS^FO450,270^A0N,18,18^FD250^FS^FO450,300^A0N,18,18^FD450^FS^FO450,320^A0N,18,18^FD300^FS^FO450,350^A0N,18,18^FD450^FS^FO450,370^A0N,18,18^FD350^FS^FO450,400^A0N,18,18^FD450^FS^FO450,420^A0N,18,18^FD400^FS^FO450,450^A0N,18,18^FD450^FS^FO450,470^A0N,18,18^FD450^FS^FO450,500^A0N,18,18^FD450^FS^FO450,520^A0N,18,18^FD500^FS^FO450,550^A0N,18,18^FD450^FS^FO450,570^A0N,18,18^FD550^FS^FO450,600^A0N,18,18^FD450^FS^FO450,620^A0N,18,18^FD600^FS^FO450,650^A0N,18,18^FD450^FS^FO450,670^A0N,18,18^FD650^FS^FO450,700^A0N,18,18^FD450^FS^FO450,720^A0N,18,18^FD700^FS^FO450,750^A0N,18,18^FD450^FS^FO450,770^A0N,18,18^FD750^FS^FO500,0^A0N,18,18^FD500^FS^FO500,20^A0N,18,18^FD0^FS^FO500,50^A0N,18,18^FD500^FS^FO500,70^A0N,18,18^FD50^FS^FO500,100^A0N,18,18^FD500^FS^FO500,120^A0N,18,18^FD100^FS^FO500,150^A0N,18,18^FD500^FS^FO500,170^A0N,18,18^FD150^FS^FO500,200^A0N,18,18^FD500^FS^FO500,220^A0N,18,18^FD200^FS^FO500,250^A0N,18,18^FD500^FS^FO500,270^A0N,18,18^FD250^FS^FO500,300^A0N,18,18^FD500^FS^FO500,320^A0N,18,18^FD300^FS^FO500,350^A0N,18,18^FD500^FS^FO500,370^A0N,18,18^FD350^FS^FO500,400^A0N,18,18^FD500^FS^FO500,420^A0N,18,18^FD400^FS^FO500,450^A0N,18,18^FD500^FS^FO500,470^A0N,18,18^FD450^FS^FO500,500^A0N,18,18^FD500^FS^FO500,520^A0N,18,18^FD500^FS^FO500,550^A0N,18,18^FD500^FS^FO500,570^A0N,18,18^FD550^FS^FO500,600^A0N,18,18^FD500^FS^FO500,620^A0N,18,18^FD600^FS^FO500,650^A0N,18,18^FD500^FS^FO500,670^A0N,18,18^FD650^FS^FO500,700^A0N,18,18^FD500^FS^FO500,720^A0N,18,18^FD700^FS^FO500,750^A0N,18,18^FD500^FS^FO500,770^A0N,18,18^FD750^FS^FO550,0^A0N,18,18^FD550^FS^FO550,20^A0N,18,18^FD0^FS^FO550,50^A0N,18,18^FD550^FS^FO550,70^A0N,18,18^FD50^FS^FO550,100^A0N,18,18^FD550^FS^FO550,120^A0N,18,18^FD100^FS^FO550,150^A0N,18,18^FD550^FS^FO550,170^A0N,18,18^FD150^FS^FO550,200^A0N,18,18^FD550^FS^FO550,220^A0N,18,18^FD200^FS^FO550,250^A0N,18,18^FD550^FS^FO550,270^A0N,18,18^FD250^FS^FO550,300^A0N,18,18^FD550^FS^FO550,320^A0N,18,18^FD300^FS^FO550,350^A0N,18,18^FD550^FS^FO550,370^A0N,18,18^FD350^FS^FO550,400^A0N,18,18^FD550^FS^FO550,420^A0N,18,18^FD400^FS^FO550,450^A0N,18,18^FD550^FS^FO550,470^A0N,18,18^FD450^FS^FO550,500^A0N,18,18^FD550^FS^FO550,520^A0N,18,18^FD500^FS^FO550,550^A0N,18,18^FD550^FS^FO550,570^A0N,18,18^FD550^FS^FO550,600^A0N,18,18^FD550^FS^FO550,620^A0N,18,18^FD600^FS^FO550,650^A0N,18,18^FD550^FS^FO550,670^A0N,18,18^FD650^FS^FO550,700^A0N,18,18^FD550^FS^FO550,720^A0N,18,18^FD700^FS^FO550,750^A0N,18,18^FD550^FS^FO550,770^A0N,18,18^FD750^FS^FO600,0^A0N,18,18^FD600^FS^FO600,20^A0N,18,18^FD0^FS^FO600,50^A0N,18,18^FD600^FS^FO600,70^A0N,18,18^FD50^FS^FO600,100^A0N,18,18^FD600^FS^FO600,120^A0N,18,18^FD100^FS^FO600,150^A0N,18,18^FD600^FS^FO600,170^A0N,18,18^FD150^FS^FO600,200^A0N,18,18^FD600^FS^FO600,220^A0N,18,18^FD200^FS^FO600,250^A0N,18,18^FD600^FS^FO600,270^A0N,18,18^FD250^FS^FO600,300^A0N,18,18^FD600^FS^FO600,320^A0N,18,18^FD300^FS^FO600,350^A0N,18,18^FD600^FS^FO600,370^A0N,18,18^FD350^FS^FO600,400^A0N,18,18^FD600^FS^FO600,420^A0N,18,18^FD400^FS^FO600,450^A0N,18,18^FD600^FS^FO600,470^A0N,18,18^FD450^FS^FO600,500^A0N,18,18^FD600^FS^FO600,520^A0N,18,18^FD500^FS^FO600,550^A0N,18,18^FD600^FS^FO600,570^A0N,18,18^FD550^FS^FO600,600^A0N,18,18^FD600^FS^FO600,620^A0N,18,18^FD600^FS^FO600,650^A0N,18,18^FD600^FS^FO600,670^A0N,18,18^FD650^FS^FO600,700^A0N,18,18^FD600^FS^FO600,720^A0N,18,18^FD700^FS^FO600,750^A0N,18,18^FD600^FS^FO600,770^A0N,18,18^FD750^FS^FO650,0^A0N,18,18^FD650^FS^FO650,20^A0N,18,18^FD0^FS^FO650,50^A0N,18,18^FD650^FS^FO650,70^A0N,18,18^FD50^FS^FO650,100^A0N,18,18^FD650^FS^FO650,120^A0N,18,18^FD100^FS^FO650,150^A0N,18,18^FD650^FS^FO650,170^A0N,18,18^FD150^FS^FO650,200^A0N,18,18^FD650^FS^FO650,220^A0N,18,18^FD200^FS^FO650,250^A0N,18,18^FD650^FS^FO650,270^A0N,18,18^FD250^FS^FO650,300^A0N,18,18^FD650^FS^FO650,320^A0N,18,18^FD300^FS^FO650,350^A0N,18,18^FD650^FS^FO650,370^A0N,18,18^FD350^FS^FO650,400^A0N,18,18^FD650^FS^FO650,420^A0N,18,18^FD400^FS^FO650,450^A0N,18,18^FD650^FS^FO650,470^A0N,18,18^FD450^FS^FO650,500^A0N,18,18^FD650^FS^FO650,520^A0N,18,18^FD500^FS^FO650,550^A0N,18,18^FD650^FS^FO650,570^A0N,18,18^FD550^FS^FO650,600^A0N,18,18^FD650^FS^FO650,620^A0N,18,18^FD600^FS^FO650,650^A0N,18,18^FD650^FS^FO650,670^A0N,18,18^FD650^FS^FO650,700^A0N,18,18^FD650^FS^FO650,720^A0N,18,18^FD700^FS^FO650,750^A0N,18,18^FD650^FS^FO650,770^A0N,18,18^FD750^FS^FO700,0^A0N,18,18^FD700^FS^FO700,20^A0N,18,18^FD0^FS^FO700,50^A0N,18,18^FD700^FS^FO700,70^A0N,18,18^FD50^FS^FO700,100^A0N,18,18^FD700^FS^FO700,120^A0N,18,18^FD100^FS^FO700,150^A0N,18,18^FD700^FS^FO700,170^A0N,18,18^FD150^FS^FO700,200^A0N,18,18^FD700^FS^FO700,220^A0N,18,18^FD200^FS^FO700,250^A0N,18,18^FD700^FS^FO700,270^A0N,18,18^FD250^FS^FO700,300^A0N,18,18^FD700^FS^FO700,320^A0N,18,18^FD300^FS^FO700,350^A0N,18,18^FD700^FS^FO700,370^A0N,18,18^FD350^FS^FO700,400^A0N,18,18^FD700^FS^FO700,420^A0N,18,18^FD400^FS^FO700,450^A0N,18,18^FD700^FS^FO700,470^A0N,18,18^FD450^FS^FO700,500^A0N,18,18^FD700^FS^FO700,520^A0N,18,18^FD500^FS^FO700,550^A0N,18,18^FD700^FS^FO700,570^A0N,18,18^FD550^FS^FO700,600^A0N,18,18^FD700^FS^FO700,620^A0N,18,18^FD600^FS^FO700,650^A0N,18,18^FD700^FS^FO700,670^A0N,18,18^FD650^FS^FO700,700^A0N,18,18^FD700^FS^FO700,720^A0N,18,18^FD700^FS^FO700,750^A0N,18,18^FD700^FS^FO700,770^A0N,18,18^FD750^FS^FO750,0^A0N,18,18^FD750^FS^FO750,20^A0N,18,18^FD0^FS^FO750,50^A0N,18,18^FD750^FS^FO750,70^A0N,18,18^FD50^FS^FO750,100^A0N,18,18^FD750^FS^FO750,120^A0N,18,18^FD100^FS^FO750,150^A0N,18,18^FD750^FS^FO750,170^A0N,18,18^FD150^FS^FO750,200^A0N,18,18^FD750^FS^FO750,220^A0N,18,18^FD200^FS^FO750,250^A0N,18,18^FD750^FS^FO750,270^A0N,18,18^FD250^FS^FO750,300^A0N,18,18^FD750^FS^FO750,320^A0N,18,18^FD300^FS^FO750,350^A0N,18,18^FD750^FS^FO750,370^A0N,18,18^FD350^FS^FO750,400^A0N,18,18^FD750^FS^FO750,420^A0N,18,18^FD400^FS^FO750,450^A0N,18,18^FD750^FS^FO750,470^A0N,18,18^FD450^FS^FO750,500^A0N,18,18^FD750^FS^FO750,520^A0N,18,18^FD500^FS^FO750,550^A0N,18,18^FD750^FS^FO750,570^A0N,18,18^FD550^FS^FO750,600^A0N,18,18^FD750^FS^FO750,620^A0N,18,18^FD600^FS^FO750,650^A0N,18,18^FD750^FS^FO750,670^A0N,18,18^FD650^FS^FO750,700^A0N,18,18^FD750^FS^FO750,720^A0N,18,18^FD700^FS^FO750,750^A0N,18,18^FD750^FS^FO750,770^A0N,18,18^FD750^FS^XZ
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
^XA
|
|
2
|
+
^FO20,20^BY2^BCN,100,Y,N,N^FDNAVA12345678^FS // 1D Barcode (Code 128)
|
|
3
|
+
^FO150,140^A0N,60,60^FDNAVA12345678^FS // Human-Readable NAVA
|
|
4
|
+
^FO150,200^A0N,60,60^FDMA^FS // Human-Readable MA
|
|
5
|
+
^FO150,260^A0N,40,40^FD2023-10-19^FS // Date
|
|
6
|
+
^FO150,300^A0N,40,40^FDcommercial^FS // String
|
|
7
|
+
^XZ
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
^XA
|
|
2
|
+
^FO235,20
|
|
3
|
+
^BY1
|
|
4
|
+
^B3N,N,40,N,N
|
|
5
|
+
^FD{uid_barcode}^FS
|
|
6
|
+
^FO235,70
|
|
7
|
+
^ADN,30,20
|
|
8
|
+
^FD{uid_barcode}^FS
|
|
9
|
+
^FO235,115
|
|
10
|
+
^ADN,25,12
|
|
11
|
+
^FD{alt_a}^FS
|
|
12
|
+
^FO235,145
|
|
13
|
+
^ADN,25,12
|
|
14
|
+
^FD{alt_b}^FS
|
|
15
|
+
^FO70,180
|
|
16
|
+
^FO235,170
|
|
17
|
+
^ADN,30,20
|
|
18
|
+
^FD{alt_c}^FS
|
|
19
|
+
^FO300,180
|
|
20
|
+
^ADN,25,12
|
|
21
|
+
^FD{alt_d}^FS
|
|
22
|
+
^FO490,180
|
|
23
|
+
^ADN,25,12
|
|
24
|
+
^FD{alt_e}^FS
|
|
25
|
+
^XZ
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
^XA
|
|
2
|
+
^FO235,20
|
|
3
|
+
^BY2
|
|
4
|
+
^B3N,N,60,N,N
|
|
5
|
+
^FD{uid_barcode}^FS
|
|
6
|
+
^FO235,100
|
|
7
|
+
^ADN,50,30
|
|
8
|
+
^FD{uid_barcode}^FS
|
|
9
|
+
^FO235,170
|
|
10
|
+
^ADN,30,20
|
|
11
|
+
^FD{alt_a}^FS
|
|
12
|
+
^FO470,170
|
|
13
|
+
^ADN,30,20
|
|
14
|
+
^FD{alt_b}^FS
|
|
15
|
+
^FO70,210
|
|
16
|
+
^FO235,220
|
|
17
|
+
^ADN,50,30
|
|
18
|
+
^FD{alt_c}^FS
|
|
19
|
+
^FO550,235
|
|
20
|
+
^ADN,30,20
|
|
21
|
+
^FD{alt_d}^FS
|
|
22
|
+
^XZ
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
^XA
|
|
2
|
+
^FO235,20
|
|
3
|
+
^BY2
|
|
4
|
+
^B3N,N,60,N,N
|
|
5
|
+
^FD{uid_barcode}^FS
|
|
6
|
+
^FO235,100
|
|
7
|
+
^ADN,50,30
|
|
8
|
+
^FD{uid_barcode}^FS
|
|
9
|
+
^FO235,160
|
|
10
|
+
^ADN,30,20
|
|
11
|
+
^FD{alt_a}^FS
|
|
12
|
+
^FO235,200
|
|
13
|
+
^ADN,30,20
|
|
14
|
+
^FD{alt_b}^FS
|
|
15
|
+
^FO235,240
|
|
16
|
+
^ADN,50,30
|
|
17
|
+
^FD{alt_c}^FS
|
|
18
|
+
^FO550,240
|
|
19
|
+
^ADN,30,20
|
|
20
|
+
^FD{alt_d}^FS
|
|
21
|
+
^XZ
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"labs" : {} }
|
zebra_day/exceptions.py
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Custom exceptions for zebra_day.
|
|
3
|
+
|
|
4
|
+
Provides specific exception types for different error conditions.
|
|
5
|
+
"""
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ZebraDayError(Exception):
|
|
10
|
+
"""Base exception for all zebra_day errors."""
|
|
11
|
+
|
|
12
|
+
pass
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class PrinterConnectionError(ZebraDayError):
|
|
16
|
+
"""Raised when unable to connect to a printer."""
|
|
17
|
+
|
|
18
|
+
def __init__(self, printer_ip: str, message: str = ""):
|
|
19
|
+
self.printer_ip = printer_ip
|
|
20
|
+
super().__init__(f"Failed to connect to printer at {printer_ip}: {message}")
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class PrinterNotFoundError(ZebraDayError):
|
|
24
|
+
"""Raised when a printer is not found in the configuration."""
|
|
25
|
+
|
|
26
|
+
def __init__(self, printer_name: str, lab: str = ""):
|
|
27
|
+
self.printer_name = printer_name
|
|
28
|
+
self.lab = lab
|
|
29
|
+
msg = f"Printer '{printer_name}' not found"
|
|
30
|
+
if lab:
|
|
31
|
+
msg += f" in lab '{lab}'"
|
|
32
|
+
super().__init__(msg)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ConfigError(ZebraDayError):
|
|
36
|
+
"""Raised when there's an issue with configuration."""
|
|
37
|
+
|
|
38
|
+
def __init__(self, message: str, config_path: str = ""):
|
|
39
|
+
self.config_path = config_path
|
|
40
|
+
super().__init__(message)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class ConfigFileNotFoundError(ConfigError):
|
|
44
|
+
"""Raised when a configuration file is not found."""
|
|
45
|
+
|
|
46
|
+
def __init__(self, path: str):
|
|
47
|
+
super().__init__(f"Configuration file not found: {path}", config_path=path)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class ConfigParseError(ConfigError):
|
|
51
|
+
"""Raised when a configuration file cannot be parsed."""
|
|
52
|
+
|
|
53
|
+
def __init__(self, path: str, details: str = ""):
|
|
54
|
+
msg = f"Failed to parse configuration file: {path}"
|
|
55
|
+
if details:
|
|
56
|
+
msg += f" ({details})"
|
|
57
|
+
super().__init__(msg, config_path=path)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class LabelTemplateError(ZebraDayError):
|
|
61
|
+
"""Raised when there's an issue with a label template."""
|
|
62
|
+
|
|
63
|
+
def __init__(self, template_name: str, message: str = ""):
|
|
64
|
+
self.template_name = template_name
|
|
65
|
+
super().__init__(f"Label template error '{template_name}': {message}")
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class LabelTemplateNotFoundError(LabelTemplateError):
|
|
69
|
+
"""Raised when a label template file is not found."""
|
|
70
|
+
|
|
71
|
+
def __init__(self, template_name: str):
|
|
72
|
+
super().__init__(template_name, "template not found")
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class ZPLRenderError(ZebraDayError):
|
|
76
|
+
"""Raised when ZPL rendering fails."""
|
|
77
|
+
|
|
78
|
+
def __init__(self, message: str):
|
|
79
|
+
super().__init__(f"ZPL render error: {message}")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class NetworkScanError(ZebraDayError):
|
|
83
|
+
"""Raised when network scanning for printers fails."""
|
|
84
|
+
|
|
85
|
+
def __init__(self, ip_stub: str, message: str = ""):
|
|
86
|
+
self.ip_stub = ip_stub
|
|
87
|
+
super().__init__(f"Network scan failed for {ip_stub}.*: {message}")
|
|
88
|
+
|
zebra_day/files/.hold
ADDED
|
File without changes
|
zebra_day/files/hold
ADDED
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Logging configuration for zebra_day.
|
|
3
|
+
|
|
4
|
+
Provides structured logging with configurable levels and formats.
|
|
5
|
+
"""
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import logging
|
|
9
|
+
import sys
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
from typing import Optional
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def get_logger(name: str) -> logging.Logger:
|
|
15
|
+
"""Get a logger with the zebra_day namespace.
|
|
16
|
+
|
|
17
|
+
Args:
|
|
18
|
+
name: Module name (typically __name__)
|
|
19
|
+
|
|
20
|
+
Returns:
|
|
21
|
+
Configured logger instance
|
|
22
|
+
"""
|
|
23
|
+
if name.startswith("zebra_day"):
|
|
24
|
+
return logging.getLogger(name)
|
|
25
|
+
return logging.getLogger(f"zebra_day.{name}")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def configure_logging(
|
|
29
|
+
level: int = logging.INFO,
|
|
30
|
+
log_file: Optional[Path] = None,
|
|
31
|
+
format_string: Optional[str] = None,
|
|
32
|
+
) -> None:
|
|
33
|
+
"""Configure zebra_day logging.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
level: Logging level (default: INFO)
|
|
37
|
+
log_file: Optional path to log file
|
|
38
|
+
format_string: Optional custom format string
|
|
39
|
+
"""
|
|
40
|
+
if format_string is None:
|
|
41
|
+
format_string = (
|
|
42
|
+
"\033[1m%(asctime)s\033[0m "
|
|
43
|
+
"[%(levelname)s] "
|
|
44
|
+
"%(name)s: %(message)s"
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
formatter = logging.Formatter(format_string, datefmt="%Y-%m-%d %H:%M:%S")
|
|
48
|
+
|
|
49
|
+
# Root zebra_day logger
|
|
50
|
+
logger = logging.getLogger("zebra_day")
|
|
51
|
+
logger.setLevel(level)
|
|
52
|
+
|
|
53
|
+
# Clear existing handlers to avoid duplicates
|
|
54
|
+
logger.handlers.clear()
|
|
55
|
+
|
|
56
|
+
# Console handler (stderr)
|
|
57
|
+
console_handler = logging.StreamHandler(sys.stderr)
|
|
58
|
+
console_handler.setLevel(level)
|
|
59
|
+
console_handler.setFormatter(formatter)
|
|
60
|
+
logger.addHandler(console_handler)
|
|
61
|
+
|
|
62
|
+
# File handler if specified
|
|
63
|
+
if log_file is not None:
|
|
64
|
+
log_file.parent.mkdir(parents=True, exist_ok=True)
|
|
65
|
+
file_handler = logging.FileHandler(log_file)
|
|
66
|
+
file_handler.setLevel(level)
|
|
67
|
+
file_handler.setFormatter(
|
|
68
|
+
logging.Formatter(
|
|
69
|
+
"%(asctime)s [%(levelname)s] %(name)s: %(message)s",
|
|
70
|
+
datefmt="%Y-%m-%d %H:%M:%S",
|
|
71
|
+
)
|
|
72
|
+
)
|
|
73
|
+
logger.addHandler(file_handler)
|
|
74
|
+
|
zebra_day/logs/.hold
ADDED
|
File without changes
|