From 8d0fd6c911cb3cb740e4ad271e569bf42fab756c Mon Sep 17 00:00:00 2001
From: Mateusz Klimaszewski <mk.klimaszewski@gmail.com>
Date: Mon, 11 Jan 2021 09:04:08 +0100
Subject: [PATCH] Add configuration files to packaged library and pip
 installation instructions.

---
 Makefile                                                 | 2 +-
 README.md                                                | 5 ++---
 .../config.graph.template.jsonnet                        | 0
 config.template.jsonnet => combo/config.template.jsonnet | 0
 combo/data/dataset.py                                    | 5 ++++-
 combo/main.py                                            | 5 +++--
 docs/installation.md                                     | 9 ++++-----
 setup.py                                                 | 3 ++-
 tests/test_main.py                                       | 2 +-
 9 files changed, 17 insertions(+), 14 deletions(-)
 rename config.graph.template.jsonnet => combo/config.graph.template.jsonnet (100%)
 rename config.template.jsonnet => combo/config.template.jsonnet (100%)

diff --git a/Makefile b/Makefile
index df0c483..af1b424 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 clean:
-	rm -rf COMBO.egg-info
+	rm -rf combo.egg-info
 	rm -rf .eggs
 	rm -rf .pytest_cache
 
diff --git a/README.md b/README.md
index a9c2113..d48aa40 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,8 @@
 ## Quick start
 Clone this repository and install COMBO (we suggest creating a virtualenv/conda environment with Python 3.6+, as a bundle of required packages will be installed):
 ```bash
-git clone https://gitlab.clarin-pl.eu/syntactic-tools/clarinbiz/combo.git
-cd combo
-python setup.py develop
+pip install -U pip setuptools wheel
+pip install --index-url https://pypi.clarin-pl.eu/simple combo
 ```
 Run the following commands in your Python console to make predictions with a pre-trained model:
 ```python
diff --git a/config.graph.template.jsonnet b/combo/config.graph.template.jsonnet
similarity index 100%
rename from config.graph.template.jsonnet
rename to combo/config.graph.template.jsonnet
diff --git a/config.template.jsonnet b/combo/config.template.jsonnet
similarity index 100%
rename from config.template.jsonnet
rename to combo/config.template.jsonnet
diff --git a/combo/data/dataset.py b/combo/data/dataset.py
index 48b68b1..9aabe19 100644
--- a/combo/data/dataset.py
+++ b/combo/data/dataset.py
@@ -1,5 +1,6 @@
 import copy
 import logging
+import pathlib
 from typing import Union, List, Dict, Iterable, Optional, Any, Tuple
 
 import conllu
@@ -79,7 +80,9 @@ class UniversalDependenciesDatasetReader(allen_data.DatasetReader):
         file_path = [file_path] if len(file_path.split(",")) == 0 else file_path.split(",")
 
         for conllu_file in file_path:
-            with open(conllu_file, "r") as file:
+            file = pathlib.Path(conllu_file)
+            assert conllu_file and file.exists(), f"File with path '{conllu_file}' does not exists!"
+            with file.open("r"):
                 for annotation in conllu.parse_incr(file, fields=self.fields, field_parsers=self.field_parsers):
                     yield self.text_to_instance(annotation)
 
diff --git a/combo/main.py b/combo/main.py
index dc9a0d7..d1e0292 100644
--- a/combo/main.py
+++ b/combo/main.py
@@ -1,6 +1,7 @@
 """Main entry point."""
 import logging
 import os
+import pathlib
 import tempfile
 from typing import Dict
 
@@ -31,7 +32,7 @@ flags.DEFINE_string(name="output_file", default="output.log",
                     help="Predictions result file.")
 
 # Training flags
-flags.DEFINE_list(name="training_data_path", default="./tests/fixtures/example.conllu",
+flags.DEFINE_list(name="training_data_path", default=[],
                   help="Training data path(s)")
 flags.DEFINE_alias(name="training_data", original_name="training_data_path")
 flags.DEFINE_list(name="validation_data_path", default="",
@@ -62,7 +63,7 @@ flags.DEFINE_list(name="finetuning_training_data_path", default="",
                   help="Training data path(s)")
 flags.DEFINE_list(name="finetuning_validation_data_path", default="",
                   help="Validation data path(s)")
-flags.DEFINE_string(name="config_path", default="config.template.jsonnet",
+flags.DEFINE_string(name="config_path", default=str(pathlib.Path(__file__).parent / "config.template.jsonnet"),
                     help="Config file path.")
 
 # Test after training flags
diff --git a/docs/installation.md b/docs/installation.md
index bf741f9..ed2ae3f 100644
--- a/docs/installation.md
+++ b/docs/installation.md
@@ -1,9 +1,8 @@
 # Installation
 Clone this repository and install COMBO (we suggest using virtualenv/conda with Python 3.6+):
 ```bash
-git clone https://gitlab.clarin-pl.eu/syntactic-tools/clarinbiz/combo.git
-cd combo
-python setup.py develop
+pip install -U pip setuptools wheel
+pip install --index-url https://pypi.clarin-pl.eu/simple combo
 combo --helpfull
 ```
 
@@ -11,8 +10,8 @@ combo --helpfull
 ```bash
 python -m venv venv
 source venv/bin/activate
-pip install --upgrade pip
-python setup.py develop
+pip install -U pip setuptools wheel
+pip install --index-url https://pypi.clarin-pl.eu/simple combo
 ```
 
 ## Problems & solutions
diff --git a/setup.py b/setup.py
index 07cd2e3..d946c84 100644
--- a/setup.py
+++ b/setup.py
@@ -19,7 +19,7 @@ REQUIREMENTS = [
 ]
 
 setup(
-    name='COMBO',
+    name='combo',
     version='1.0.0b1',
     author='Mateusz Klimaszewski',
     author_email='M.Klimaszewski@ii.pw.edu.pl',
@@ -31,6 +31,7 @@ setup(
     setup_requires=['pytest-runner', 'pytest-pylint'],
     tests_require=['pytest', 'pylint'],
     python_requires='>=3.6',
+    package_data={'combo': ['config.graph.template.jsonnet', 'config.template.jsonnet']},
     entry_points={'console_scripts': ['combo = combo.main:main']},
     classifiers=[
         'Development Status :: 4 - Beta',
diff --git a/tests/test_main.py b/tests/test_main.py
index 448e64d..107f681 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -41,7 +41,7 @@ class TrainingEndToEndTest(unittest.TestCase):
             "word_batch_size": "1",
             "use_tensorboard": "False"
         }
-        params = Params.from_file(os.path.join(self.PROJECT_ROOT, "config.template.jsonnet"),
+        params = Params.from_file(os.path.join(self.MODULE_ROOT, "config.template.jsonnet"),
                                   ext_vars=ext_vars)
 
         # when
-- 
GitLab