From 9e7b442ceb90f60dc08abe5f0f631bc26fc3812d Mon Sep 17 00:00:00 2001 From: Eduardo Cuducos Date: Wed, 12 Apr 2017 21:43:10 -0300 Subject: [PATCH 1/2] Make rosie a top-level package again --- rosie.py | 4 ++-- {ceap => rosie}/__init__.py | 0 {ceap/tests => rosie/ceap}/__init__.py | 0 {ceap => rosie/ceap}/classifiers/__init__.py | 14 +++++++------- {ceap => rosie/ceap}/classifiers/__main__.py | 0 {ceap => rosie/ceap}/classifiers/dataset.py | 0 .../classifiers/election_expenses_classifier.py | 0 .../classifiers/invalid_cnpj_cpf_classifier.py | 0 .../classifiers/irregular_companies_classifier.py | 0 .../classifiers/meal_price_outlier_classifier.py | 0 .../monthly_subquota_limit_classifier.py | 0 .../classifiers/traveled_speeds_classifier.py | 0 rosie/ceap/tests/__init__.py | 0 {ceap => rosie/ceap}/tests/fixtures/companies.xz | Bin .../fixtures/election_expenses_classifier.csv | 0 .../fixtures/invalid_cnpj_cpf_classifier.csv | 0 .../fixtures/irregular_companies_classifier.csv | 0 .../fixtures/meal_price_outlier_classifier.csv | 0 .../monthly_subquota_limit_classifier.csv | 0 .../ceap}/tests/fixtures/reimbursements.xz | Bin .../tests/fixtures/traveled_speeds_classifier.csv | 0 {ceap => rosie/ceap}/tests/test_ceap.py | 2 +- {ceap => rosie/ceap}/tests/test_dataset.py | 6 +++--- .../tests/test_election_expenses_classifier.py | 4 ++-- .../tests/test_invalid_cnpj_cpf_classifier.py | 4 ++-- .../tests/test_irregular_companies_classifier.py | 4 ++-- .../tests/test_meal_price_outlier_classifier.py | 4 ++-- .../test_monthly_subquota_limit_classifier.py | 4 ++-- .../tests/test_traveled_speeds_classifier.py | 4 ++-- 29 files changed, 25 insertions(+), 25 deletions(-) rename {ceap => rosie}/__init__.py (100%) rename {ceap/tests => rosie/ceap}/__init__.py (100%) rename {ceap => rosie/ceap}/classifiers/__init__.py (79%) rename {ceap => rosie/ceap}/classifiers/__main__.py (100%) rename {ceap => rosie/ceap}/classifiers/dataset.py (100%) rename {ceap => rosie/ceap}/classifiers/election_expenses_classifier.py (100%) rename {ceap => rosie/ceap}/classifiers/invalid_cnpj_cpf_classifier.py (100%) rename {ceap => rosie/ceap}/classifiers/irregular_companies_classifier.py (100%) rename {ceap => rosie/ceap}/classifiers/meal_price_outlier_classifier.py (100%) rename {ceap => rosie/ceap}/classifiers/monthly_subquota_limit_classifier.py (100%) rename {ceap => rosie/ceap}/classifiers/traveled_speeds_classifier.py (100%) create mode 100644 rosie/ceap/tests/__init__.py rename {ceap => rosie/ceap}/tests/fixtures/companies.xz (100%) rename {ceap => rosie/ceap}/tests/fixtures/election_expenses_classifier.csv (100%) rename {ceap => rosie/ceap}/tests/fixtures/invalid_cnpj_cpf_classifier.csv (100%) rename {ceap => rosie/ceap}/tests/fixtures/irregular_companies_classifier.csv (100%) rename {ceap => rosie/ceap}/tests/fixtures/meal_price_outlier_classifier.csv (100%) rename {ceap => rosie/ceap}/tests/fixtures/monthly_subquota_limit_classifier.csv (100%) rename {ceap => rosie/ceap}/tests/fixtures/reimbursements.xz (100%) rename {ceap => rosie/ceap}/tests/fixtures/traveled_speeds_classifier.csv (100%) rename {ceap => rosie/ceap}/tests/test_ceap.py (96%) rename {ceap => rosie/ceap}/tests/test_dataset.py (79%) rename {ceap => rosie/ceap}/tests/test_election_expenses_classifier.py (78%) rename {ceap => rosie/ceap}/tests/test_invalid_cnpj_cpf_classifier.py (88%) rename {ceap => rosie/ceap}/tests/test_irregular_companies_classifier.py (85%) rename {ceap => rosie/ceap}/tests/test_meal_price_outlier_classifier.py (95%) rename {ceap => rosie/ceap}/tests/test_monthly_subquota_limit_classifier.py (89%) rename {ceap => rosie/ceap}/tests/test_traveled_speeds_classifier.py (95%) diff --git a/rosie.py b/rosie.py index 8a9c2a6..f8defce 100755 --- a/rosie.py +++ b/rosie.py @@ -18,7 +18,7 @@ def help(): def run(): - from ceap import classifiers + from rosie.ceap import classifiers target_directory = argv[2] if len(argv) >= 3 else '/tmp/serenata-data/' classifiers.main(target_directory) @@ -26,7 +26,7 @@ def run(): def test(): import unittest loader = unittest.TestLoader() - tests = loader.discover('ceap/tests') + tests = loader.discover('rosie') testRunner = unittest.runner.TextTestRunner() testRunner.run(tests) diff --git a/ceap/__init__.py b/rosie/__init__.py similarity index 100% rename from ceap/__init__.py rename to rosie/__init__.py diff --git a/ceap/tests/__init__.py b/rosie/ceap/__init__.py similarity index 100% rename from ceap/tests/__init__.py rename to rosie/ceap/__init__.py diff --git a/ceap/classifiers/__init__.py b/rosie/ceap/classifiers/__init__.py similarity index 79% rename from ceap/classifiers/__init__.py rename to rosie/ceap/classifiers/__init__.py index 748f714..2fe6fd5 100644 --- a/ceap/classifiers/__init__.py +++ b/rosie/ceap/classifiers/__init__.py @@ -3,13 +3,13 @@ import numpy as np from sklearn.externals import joblib -from ceap.classifiers.dataset import Dataset -from ceap.classifiers.election_expenses_classifier import ElectionExpensesClassifier -from ceap.classifiers.invalid_cnpj_cpf_classifier import InvalidCnpjCpfClassifier -from ceap.classifiers.meal_price_outlier_classifier import MealPriceOutlierClassifier -from ceap.classifiers.monthly_subquota_limit_classifier import MonthlySubquotaLimitClassifier -from ceap.classifiers.traveled_speeds_classifier import TraveledSpeedsClassifier -from ceap.classifiers.irregular_companies_classifier import IrregularCompaniesClassifier +from rosie.ceap.classifiers.dataset import Dataset +from rosie.ceap.classifiers.election_expenses_classifier import ElectionExpensesClassifier +from rosie.ceap.classifiers.invalid_cnpj_cpf_classifier import InvalidCnpjCpfClassifier +from rosie.ceap.classifiers.meal_price_outlier_classifier import MealPriceOutlierClassifier +from rosie.ceap.classifiers.monthly_subquota_limit_classifier import MonthlySubquotaLimitClassifier +from rosie.ceap.classifiers.traveled_speeds_classifier import TraveledSpeedsClassifier +from rosie.ceap.classifiers.irregular_companies_classifier import IrregularCompaniesClassifier class Ceap: diff --git a/ceap/classifiers/__main__.py b/rosie/ceap/classifiers/__main__.py similarity index 100% rename from ceap/classifiers/__main__.py rename to rosie/ceap/classifiers/__main__.py diff --git a/ceap/classifiers/dataset.py b/rosie/ceap/classifiers/dataset.py similarity index 100% rename from ceap/classifiers/dataset.py rename to rosie/ceap/classifiers/dataset.py diff --git a/ceap/classifiers/election_expenses_classifier.py b/rosie/ceap/classifiers/election_expenses_classifier.py similarity index 100% rename from ceap/classifiers/election_expenses_classifier.py rename to rosie/ceap/classifiers/election_expenses_classifier.py diff --git a/ceap/classifiers/invalid_cnpj_cpf_classifier.py b/rosie/ceap/classifiers/invalid_cnpj_cpf_classifier.py similarity index 100% rename from ceap/classifiers/invalid_cnpj_cpf_classifier.py rename to rosie/ceap/classifiers/invalid_cnpj_cpf_classifier.py diff --git a/ceap/classifiers/irregular_companies_classifier.py b/rosie/ceap/classifiers/irregular_companies_classifier.py similarity index 100% rename from ceap/classifiers/irregular_companies_classifier.py rename to rosie/ceap/classifiers/irregular_companies_classifier.py diff --git a/ceap/classifiers/meal_price_outlier_classifier.py b/rosie/ceap/classifiers/meal_price_outlier_classifier.py similarity index 100% rename from ceap/classifiers/meal_price_outlier_classifier.py rename to rosie/ceap/classifiers/meal_price_outlier_classifier.py diff --git a/ceap/classifiers/monthly_subquota_limit_classifier.py b/rosie/ceap/classifiers/monthly_subquota_limit_classifier.py similarity index 100% rename from ceap/classifiers/monthly_subquota_limit_classifier.py rename to rosie/ceap/classifiers/monthly_subquota_limit_classifier.py diff --git a/ceap/classifiers/traveled_speeds_classifier.py b/rosie/ceap/classifiers/traveled_speeds_classifier.py similarity index 100% rename from ceap/classifiers/traveled_speeds_classifier.py rename to rosie/ceap/classifiers/traveled_speeds_classifier.py diff --git a/rosie/ceap/tests/__init__.py b/rosie/ceap/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ceap/tests/fixtures/companies.xz b/rosie/ceap/tests/fixtures/companies.xz similarity index 100% rename from ceap/tests/fixtures/companies.xz rename to rosie/ceap/tests/fixtures/companies.xz diff --git a/ceap/tests/fixtures/election_expenses_classifier.csv b/rosie/ceap/tests/fixtures/election_expenses_classifier.csv similarity index 100% rename from ceap/tests/fixtures/election_expenses_classifier.csv rename to rosie/ceap/tests/fixtures/election_expenses_classifier.csv diff --git a/ceap/tests/fixtures/invalid_cnpj_cpf_classifier.csv b/rosie/ceap/tests/fixtures/invalid_cnpj_cpf_classifier.csv similarity index 100% rename from ceap/tests/fixtures/invalid_cnpj_cpf_classifier.csv rename to rosie/ceap/tests/fixtures/invalid_cnpj_cpf_classifier.csv diff --git a/ceap/tests/fixtures/irregular_companies_classifier.csv b/rosie/ceap/tests/fixtures/irregular_companies_classifier.csv similarity index 100% rename from ceap/tests/fixtures/irregular_companies_classifier.csv rename to rosie/ceap/tests/fixtures/irregular_companies_classifier.csv diff --git a/ceap/tests/fixtures/meal_price_outlier_classifier.csv b/rosie/ceap/tests/fixtures/meal_price_outlier_classifier.csv similarity index 100% rename from ceap/tests/fixtures/meal_price_outlier_classifier.csv rename to rosie/ceap/tests/fixtures/meal_price_outlier_classifier.csv diff --git a/ceap/tests/fixtures/monthly_subquota_limit_classifier.csv b/rosie/ceap/tests/fixtures/monthly_subquota_limit_classifier.csv similarity index 100% rename from ceap/tests/fixtures/monthly_subquota_limit_classifier.csv rename to rosie/ceap/tests/fixtures/monthly_subquota_limit_classifier.csv diff --git a/ceap/tests/fixtures/reimbursements.xz b/rosie/ceap/tests/fixtures/reimbursements.xz similarity index 100% rename from ceap/tests/fixtures/reimbursements.xz rename to rosie/ceap/tests/fixtures/reimbursements.xz diff --git a/ceap/tests/fixtures/traveled_speeds_classifier.csv b/rosie/ceap/tests/fixtures/traveled_speeds_classifier.csv similarity index 100% rename from ceap/tests/fixtures/traveled_speeds_classifier.csv rename to rosie/ceap/tests/fixtures/traveled_speeds_classifier.csv diff --git a/ceap/tests/test_ceap.py b/rosie/ceap/tests/test_ceap.py similarity index 96% rename from ceap/tests/test_ceap.py rename to rosie/ceap/tests/test_ceap.py index 1490010..10847a9 100644 --- a/ceap/tests/test_ceap.py +++ b/rosie/ceap/tests/test_ceap.py @@ -6,7 +6,7 @@ import pandas as pd -from ceap.classifiers import Ceap +from rosie.ceap.classifiers import Ceap class TestCeap(TestCase): diff --git a/ceap/tests/test_dataset.py b/rosie/ceap/tests/test_dataset.py similarity index 79% rename from ceap/tests/test_dataset.py rename to rosie/ceap/tests/test_dataset.py index 9934162..2f801f6 100644 --- a/ceap/tests/test_dataset.py +++ b/rosie/ceap/tests/test_dataset.py @@ -4,16 +4,16 @@ from unittest.mock import patch from shutil import copy2 -from ceap.classifiers import Dataset +from rosie.ceap.classifiers import Dataset class TestDataset(TestCase): def setUp(self): temp_path = mkdtemp() - copy2('ceap/tests/fixtures/companies.xz', + copy2('rosie/ceap/tests/fixtures/companies.xz', os.path.join(temp_path, Dataset.COMPANIES_DATASET)) - copy2('ceap/tests/fixtures/reimbursements.xz', temp_path) + copy2('rosie/ceap/tests/fixtures/reimbursements.xz', temp_path) self.subject = Dataset(temp_path) @patch('ceap.classifiers.dataset.CEAPDataset') diff --git a/ceap/tests/test_election_expenses_classifier.py b/rosie/ceap/tests/test_election_expenses_classifier.py similarity index 78% rename from ceap/tests/test_election_expenses_classifier.py rename to rosie/ceap/tests/test_election_expenses_classifier.py index 17cf178..ea433e6 100644 --- a/ceap/tests/test_election_expenses_classifier.py +++ b/rosie/ceap/tests/test_election_expenses_classifier.py @@ -3,13 +3,13 @@ import numpy as np import pandas as pd -from ceap.classifiers.election_expenses_classifier import ElectionExpensesClassifier +from rosie.ceap.classifiers.election_expenses_classifier import ElectionExpensesClassifier class TestElectionExpensesClassifier(TestCase): def setUp(self): - self.dataset = pd.read_csv('ceap/tests/fixtures/election_expenses_classifier.csv', + self.dataset = pd.read_csv('rosie/ceap/tests/fixtures/election_expenses_classifier.csv', dtype={'name': np.str, 'legal_entity': np.str}) self.subject = ElectionExpensesClassifier() diff --git a/ceap/tests/test_invalid_cnpj_cpf_classifier.py b/rosie/ceap/tests/test_invalid_cnpj_cpf_classifier.py similarity index 88% rename from ceap/tests/test_invalid_cnpj_cpf_classifier.py rename to rosie/ceap/tests/test_invalid_cnpj_cpf_classifier.py index ffef747..9bfb632 100644 --- a/ceap/tests/test_invalid_cnpj_cpf_classifier.py +++ b/rosie/ceap/tests/test_invalid_cnpj_cpf_classifier.py @@ -3,13 +3,13 @@ import numpy as np import pandas as pd -from ceap.classifiers.invalid_cnpj_cpf_classifier import InvalidCnpjCpfClassifier +from rosie.ceap.classifiers.invalid_cnpj_cpf_classifier import InvalidCnpjCpfClassifier class TestInvalidCnpjCpfClassifier(TestCase): def setUp(self): - self.dataset = pd.read_csv('ceap/tests/fixtures/invalid_cnpj_cpf_classifier.csv', + self.dataset = pd.read_csv('rosie/ceap/tests/fixtures/invalid_cnpj_cpf_classifier.csv', dtype={'cnpj_cpf': np.str}) self.subject = InvalidCnpjCpfClassifier() diff --git a/ceap/tests/test_irregular_companies_classifier.py b/rosie/ceap/tests/test_irregular_companies_classifier.py similarity index 85% rename from ceap/tests/test_irregular_companies_classifier.py rename to rosie/ceap/tests/test_irregular_companies_classifier.py index 87a34e0..9128b04 100644 --- a/ceap/tests/test_irregular_companies_classifier.py +++ b/rosie/ceap/tests/test_irregular_companies_classifier.py @@ -3,13 +3,13 @@ import numpy as np import pandas as pd -from ceap.classifiers.irregular_companies_classifier import IrregularCompaniesClassifier +from rosie.ceap.classifiers.irregular_companies_classifier import IrregularCompaniesClassifier class TestIrregularCompaniesClassifier(TestCase): def setUp(self): - self.dataset = pd.read_csv('ceap/tests/fixtures/irregular_companies_classifier.csv', + self.dataset = pd.read_csv('rosie/ceap/tests/fixtures/irregular_companies_classifier.csv', dtype={'cnpj': np.str}) self.subject = IrregularCompaniesClassifier() diff --git a/ceap/tests/test_meal_price_outlier_classifier.py b/rosie/ceap/tests/test_meal_price_outlier_classifier.py similarity index 95% rename from ceap/tests/test_meal_price_outlier_classifier.py rename to rosie/ceap/tests/test_meal_price_outlier_classifier.py index 2e0fd67..a9ce4ac 100644 --- a/ceap/tests/test_meal_price_outlier_classifier.py +++ b/rosie/ceap/tests/test_meal_price_outlier_classifier.py @@ -5,13 +5,13 @@ import pandas as pd from numpy.testing import assert_array_equal -from ceap.classifiers.meal_price_outlier_classifier import MealPriceOutlierClassifier +from rosie.ceap.classifiers.meal_price_outlier_classifier import MealPriceOutlierClassifier class TestMealPriceOutlierClassifier(TestCase): def setUp(self): - self.dataset = pd.read_csv('ceap/tests/fixtures/meal_price_outlier_classifier.csv', + self.dataset = pd.read_csv('rosie/ceap/tests/fixtures/meal_price_outlier_classifier.csv', dtype={'cnpj_cpf': np.str}) self.subject = MealPriceOutlierClassifier() self.subject.fit(self.dataset) diff --git a/ceap/tests/test_monthly_subquota_limit_classifier.py b/rosie/ceap/tests/test_monthly_subquota_limit_classifier.py similarity index 89% rename from ceap/tests/test_monthly_subquota_limit_classifier.py rename to rosie/ceap/tests/test_monthly_subquota_limit_classifier.py index d485cf6..2b6a622 100644 --- a/ceap/tests/test_monthly_subquota_limit_classifier.py +++ b/rosie/ceap/tests/test_monthly_subquota_limit_classifier.py @@ -4,13 +4,13 @@ import pandas as pd from numpy.testing import assert_array_equal -from ceap.classifiers.monthly_subquota_limit_classifier import MonthlySubquotaLimitClassifier +from rosie.ceap.classifiers.monthly_subquota_limit_classifier import MonthlySubquotaLimitClassifier class TestMonthlySubquotaLimitClassifier(TestCase): def setUp(self): - self.dataset = pd.read_csv('ceap/tests/fixtures/monthly_subquota_limit_classifier.csv', + self.dataset = pd.read_csv('rosie/ceap/tests/fixtures/monthly_subquota_limit_classifier.csv', dtype={'subquota_number': np.str}) self.subject = MonthlySubquotaLimitClassifier() self.subject.fit_transform(self.dataset) diff --git a/ceap/tests/test_traveled_speeds_classifier.py b/rosie/ceap/tests/test_traveled_speeds_classifier.py similarity index 95% rename from ceap/tests/test_traveled_speeds_classifier.py rename to rosie/ceap/tests/test_traveled_speeds_classifier.py index 37e2e5d..d4e1a6a 100644 --- a/ceap/tests/test_traveled_speeds_classifier.py +++ b/rosie/ceap/tests/test_traveled_speeds_classifier.py @@ -5,13 +5,13 @@ import sklearn from numpy.testing import assert_array_equal -from ceap.classifiers.traveled_speeds_classifier import TraveledSpeedsClassifier +from rosie.ceap.classifiers.traveled_speeds_classifier import TraveledSpeedsClassifier class TestTraveledSpeedsClassifier(TestCase): def setUp(self): - self.dataset = pd.read_csv('ceap/tests/fixtures/traveled_speeds_classifier.csv', + self.dataset = pd.read_csv('rosie/ceap/tests/fixtures/traveled_speeds_classifier.csv', dtype={'cnpj_cpf': np.str}) self.subject = TraveledSpeedsClassifier() self.subject.fit(self.dataset) From 758df0a6ea5099bb47d97d3e502177bfe50d816c Mon Sep 17 00:00:00 2001 From: Eduardo Cuducos Date: Wed, 12 Apr 2017 21:53:47 -0300 Subject: [PATCH 2/2] Fix patches --- rosie/ceap/tests/test_ceap.py | 4 ++-- rosie/ceap/tests/test_dataset.py | 4 ++-- rosie/ceap/tests/test_meal_price_outlier_classifier.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rosie/ceap/tests/test_ceap.py b/rosie/ceap/tests/test_ceap.py index 10847a9..17068c4 100644 --- a/rosie/ceap/tests/test_ceap.py +++ b/rosie/ceap/tests/test_ceap.py @@ -22,12 +22,12 @@ def setUp(self): self.dataset = pd.DataFrame().append(row, ignore_index=True) self.subject = Ceap(self.dataset, mkdtemp()) - @patch('ceap.classifiers.joblib') + @patch('rosie.ceap.classifiers.joblib') def test_load_trained_model_trains_model_when_not_persisted(self, _): model = self.subject.load_trained_model(MagicMock) model.fit.assert_called_once_with(self.dataset) - @patch('ceap.classifiers.joblib') + @patch('rosie.ceap.classifiers.joblib') def test_load_trained_model_doesnt_train_model_when_already_persisted(self, _): Path(os.path.join(self.subject.data_path, 'magicmock.pkl')).touch() model = self.subject.load_trained_model(MagicMock) diff --git a/rosie/ceap/tests/test_dataset.py b/rosie/ceap/tests/test_dataset.py index 2f801f6..d115690 100644 --- a/rosie/ceap/tests/test_dataset.py +++ b/rosie/ceap/tests/test_dataset.py @@ -16,8 +16,8 @@ def setUp(self): copy2('rosie/ceap/tests/fixtures/reimbursements.xz', temp_path) self.subject = Dataset(temp_path) - @patch('ceap.classifiers.dataset.CEAPDataset') - @patch('ceap.classifiers.dataset.fetch') + @patch('rosie.ceap.classifiers.dataset.CEAPDataset') + @patch('rosie.ceap.classifiers.dataset.fetch') def test_get_performs_a_left_merge_between_reimbursements_and_companies(self, _ceap_dataset, _fetch): dataset = self.subject.get() self.assertEqual(5, len(dataset)) diff --git a/rosie/ceap/tests/test_meal_price_outlier_classifier.py b/rosie/ceap/tests/test_meal_price_outlier_classifier.py index a9ce4ac..52149f7 100644 --- a/rosie/ceap/tests/test_meal_price_outlier_classifier.py +++ b/rosie/ceap/tests/test_meal_price_outlier_classifier.py @@ -16,7 +16,7 @@ def setUp(self): self.subject = MealPriceOutlierClassifier() self.subject.fit(self.dataset) - @patch('ceap.classifiers.meal_price_outlier_classifier.KMeans') + @patch('rosie.ceap.classifiers.meal_price_outlier_classifier.KMeans') def test_predict_returns_a_prediction_for_each_observation(self, kmeans_mock): kmeans_mock.return_value.predict.return_value = np.ones(3) self.subject.fit(self.dataset)