mirror of
				https://github.com/qurator-spk/eynollah.git
				synced 2025-10-27 07:44:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			97 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| PYTHON ?= python3
 | |
| PIP ?= pip3
 | |
| EXTRAS ?=
 | |
| 
 | |
| # DOCKER_BASE_IMAGE = artefakt.dev.sbb.berlin:5000/sbb/ocrd_core:v2.68.0
 | |
| DOCKER_BASE_IMAGE = docker.io/ocrd/core-cuda-tf2:v3.3.0
 | |
| DOCKER_TAG = ocrd/eynollah
 | |
| 
 | |
| #MODEL := 'https://qurator-data.de/eynollah/2021-04-25/models_eynollah.tar.gz'
 | |
| #MODEL := 'https://qurator-data.de/eynollah/2022-04-05/models_eynollah_renamed.tar.gz'
 | |
| MODEL := 'https://qurator-data.de/eynollah/2022-04-05/models_eynollah.tar.gz'
 | |
| #MODEL := 'https://github.com/qurator-spk/eynollah/releases/download/v0.3.0/models_eynollah.tar.gz'
 | |
| #MODEL := 'https://github.com/qurator-spk/eynollah/releases/download/v0.3.1/models_eynollah.tar.gz'
 | |
| 
 | |
| PYTEST_ARGS ?= 
 | |
| 
 | |
| # BEGIN-EVAL makefile-parser --make-help Makefile
 | |
| 
 | |
| help:
 | |
| 	@echo ""
 | |
| 	@echo "  Targets"
 | |
| 	@echo ""
 | |
| 	@echo "    docker       Build Docker image"
 | |
| 	@echo "    build        Build Python source and binary distribution"
 | |
| 	@echo "    install      Install package with pip"
 | |
| 	@echo "    install-dev  Install editable with pip"
 | |
| 	@echo "    deps-test    Install test dependencies with pip"
 | |
| 	@echo "    models       Download and extract models to $(CURDIR)/models_eynollah"
 | |
| 	@echo "    smoke-test   Run simple CLI check"
 | |
| 	@echo "    ocrd-test    Run OCR-D CLI check"
 | |
| 	@echo "    test         Run unit tests"
 | |
| 	@echo ""
 | |
| 	@echo "  Variables"
 | |
| 	@echo "    EXTRAS       comma-separated list of features (like 'OCR,plotting') for 'install' [$(EXTRAS)]"
 | |
| 	@echo "    DOCKER_TAG   Docker image tag for 'docker' [$(DOCKER_TAG)]"
 | |
| 	@echo "    PYTEST_ARGS  pytest args for 'test' (Set to '-s' to see log output during test execution, '-vv' to see individual tests. [$(PYTEST_ARGS)]"
 | |
| 	@echo "    MODEL        URL of 'models' archive to download for 'test' [$(MODEL)]"
 | |
| 	@echo ""
 | |
| 
 | |
| # END-EVAL
 | |
| 
 | |
| 
 | |
| # Download and extract models to $(PWD)/models_eynollah
 | |
| models: models_eynollah
 | |
| 
 | |
| models_eynollah: models_eynollah.tar.gz
 | |
| 	tar zxf models_eynollah.tar.gz
 | |
| 
 | |
| models_eynollah.tar.gz:
 | |
| 	wget $(MODEL)
 | |
| 
 | |
| build:
 | |
| 	$(PIP) install build
 | |
| 	$(PYTHON) -m build .
 | |
| 
 | |
| # Install with pip
 | |
| install:
 | |
| 	$(PIP) install .$(and $(EXTRAS),[$(EXTRAS)])
 | |
| 
 | |
| # Install editable with pip
 | |
| install-dev:
 | |
| 	$(PIP) install -e .$(and $(EXTRAS),[$(EXTRAS)])
 | |
| 
 | |
| deps-test: models_eynollah
 | |
| 	$(PIP) install -r requirements-test.txt
 | |
| 
 | |
| smoke-test: TMPDIR != mktemp -d
 | |
| smoke-test: tests/resources/kant_aufklaerung_1784_0020.tif deps-test
 | |
| 	eynollah layout -i $< -o $(TMPDIR) -m $(CURDIR)/models_eynollah
 | |
| 	fgrep -q http://schema.primaresearch.org/PAGE/gts/pagecontent/2019-07-15 $(TMPDIR)/$(basename $(<F)).xml
 | |
| 	fgrep -c -e TextRegion -e ImageRegion -e SeparatorRegion $(TMPDIR)/$(basename $(<F)).xml
 | |
| 	$(RM) -r $(TMPDIR)
 | |
| 
 | |
| ocrd-test: TMPDIR != mktemp -d
 | |
| ocrd-test: tests/resources/kant_aufklaerung_1784_0020.tif deps-test
 | |
| 	cp $< $(TMPDIR)
 | |
| 	ocrd workspace -d $(TMPDIR) init
 | |
| 	ocrd workspace -d $(TMPDIR) add -G OCR-D-IMG -g PHYS_0020 -i OCR-D-IMG_0020 $(<F)
 | |
| 	ocrd-eynollah-segment -w $(TMPDIR) -I OCR-D-IMG -O OCR-D-SEG -P models $(CURDIR)/models_eynollah
 | |
| 	result=$$(ocrd workspace -d $(TMPDIR) find -G OCR-D-SEG); \
 | |
| 	fgrep -q http://schema.primaresearch.org/PAGE/gts/pagecontent/2019-07-15 $(TMPDIR)/$$result && \
 | |
| 	fgrep -c -e TextRegion -e ImageRegion -e SeparatorRegion $(TMPDIR)/$$result
 | |
| 	$(RM) -r $(TMPDIR)
 | |
| 
 | |
| # Run unit tests
 | |
| test: deps-test
 | |
| 	EYNOLLAH_MODELS=$(CURDIR)/models_eynollah $(PYTHON) -m pytest tests  --durations=0 --continue-on-collection-errors $(PYTEST_ARGS)
 | |
| 
 | |
| # Build docker image
 | |
| docker:
 | |
| 	docker build \
 | |
| 	--build-arg DOCKER_BASE_IMAGE=$(DOCKER_BASE_IMAGE) \
 | |
| 	--build-arg VCS_REF=$$(git rev-parse --short HEAD) \
 | |
| 	--build-arg BUILD_DATE=$$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
 | |
| 	-t $(DOCKER_TAG) .
 | |
| 
 | |
| .PHONY: models build install install-dev test smoke-test ocrd-test docker help
 |