Skip to content

Commit 389d57d

Browse files
authored
Merge pull request #30 from SHKnudsen/release-package
update release
2 parents 2af0fde + cd0e969 commit 389d57d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+37079
-7
lines changed

release packages/DynamoPandas.zip

957 KB
Binary file not shown.

release packages/DynamoPandas/extra/Pandamo_AllNodes.dyn

Lines changed: 2666 additions & 0 deletions
Large diffs are not rendered by default.

release packages/DynamoPandas/extra/navie_bayes_sample/NaiveBayesPrediction.dyn

Lines changed: 32748 additions & 0 deletions
Large diffs are not rendered by default.
Binary file not shown.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FLASK_APP = run.py
2+
FLASK_ENV = development
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
@REM Copyright (C) 2012 Anaconda, Inc
2+
@REM SPDX-License-Identifier: BSD-3-Clause
3+
@REM Test first character and last character of %1 to see if first character is a "
4+
@REM but the last character isn't.
5+
@REM This was a bug as described in https://github.com/ContinuumIO/menuinst/issues/60
6+
@REM When Anaconda Prompt has the form
7+
@REM %windir%\system32\cmd.exe "/K" "C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3"
8+
@REM Rather than the correct
9+
@REM %windir%\system32\cmd.exe /K ""C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3""
10+
@REM this solution taken from https://stackoverflow.com/a/31359867
11+
@set "_args1=%1"
12+
@set _args1_first=%_args1:~0,1%
13+
@set _args1_last=%_args1:~-1%
14+
@set _args1_first=%_args1_first:"=+%
15+
@set _args1_last=%_args1_last:"=+%
16+
@set _args1=
17+
18+
@if "%_args1_first%"=="+" if NOT "%_args1_last%"=="+" (
19+
@CALL "%~dp0..\condabin\conda.bat" activate pandamo
20+
@GOTO :End
21+
)
22+
23+
@REM This may work if there are spaces in anything in %*
24+
@CALL "%~dp0..\condabin\conda.bat" activate pandamo
25+
26+
:End
27+
@set _args1_first=
28+
@set _args1_last=
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import os
2+
3+
class Config(object):
4+
FLASK_APP = "run.py"
5+
FLASK_ENV = "development"
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: pandamo
2+
channels:
3+
- defaults
4+
dependencies:
5+
- blas=1.0
6+
- ca-certificates=2019.10.16
7+
- certifi=2019.9.11
8+
- click=7.0
9+
- flask=1.1.1
10+
- icc_rt=2019.0.0
11+
- intel-openmp=2019.4
12+
- itsdangerous=1.1.0
13+
- jinja2=2.10.3
14+
- markupsafe=1.1.1
15+
- mkl=2019.4
16+
- mkl-service=2.3.0
17+
- mkl_fft=1.0.14
18+
- mkl_random=1.1.0
19+
- numpy=1.16.5
20+
- numpy-base=1.16.5
21+
- openssl=1.1.1d
22+
- pandas=0.25.2
23+
- pip=19.3.1
24+
- python=3.7.4
25+
- python-dateutil=2.8.0
26+
- pytz=2019.3
27+
- scipy=1.3.1
28+
- setuptools=41.4.0
29+
- six=1.12.0
30+
- sqlite=3.30.1
31+
- tabulate=0.8.3
32+
- vc=14.1
33+
- vs2015_runtime=14.16.27012
34+
- werkzeug=0.16.0
35+
- wheel=0.33.6
36+
- wincertstore=0.2
37+
- xlrd=1.2.0
38+
- pip:
39+
- joblib==0.14.0
40+
- scikit-learn==0.21.3
41+
- sklearn==0.0
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
from flask import Flask
2+
from config import Config
3+
from pandamo import api
4+
import os
5+
6+
# Disable Intel Fortran default console event handler
7+
# https://github.com/ContinuumIO/anaconda-issues/issues/905
8+
env = 'FOR_DISABLE_CONSOLE_CTRL_HANDLER'
9+
if env not in os.environ:
10+
os.environ[env] = '1'
11+
12+
app = Flask(__name__)
13+
14+
from pandamo.api.server.has_server_started import mod
15+
16+
from pandamo.api.dataframes.create_dataframe import mod
17+
from pandamo.api.filters.filter_dataframe import mod
18+
from pandamo.api.format.format_dataframe import mod
19+
from pandamo.api.reshape.reshape_dataframe import mod
20+
from pandamo.api.select.select_rows import mod
21+
from pandamo.api.select.select_columns import mod
22+
from pandamo.api.information.basic_information import mod
23+
from pandamo.api.information.summary import mod
24+
from pandamo.api.combine.combine_dataframe import mod
25+
from pandamo.api.statistics.stats import mod
26+
27+
app.register_blueprint(api.server.has_server_started.mod, url_prefix='/api/server')
28+
29+
app.register_blueprint(api.dataframes.create_dataframe.mod, url_prefix='/api/create_dataframe')
30+
app.register_blueprint(api.filters.filter_dataframe.mod, url_prefix='/api/filter_dataframe')
31+
app.register_blueprint(api.format.format_dataframe.mod, url_prefix='/api/format_dataframe')
32+
app.register_blueprint(api.reshape.reshape_dataframe.mod, url_prefix='/api/reshape_dataframe')
33+
app.register_blueprint(api.select.select_rows.mod, url_prefix='/api/select_rows')
34+
app.register_blueprint(api.select.select_columns.mod, url_prefix='/api/select_columns')
35+
app.register_blueprint(api.information.basic_information.mod, url_prefix='/api/basic_information')
36+
app.register_blueprint(api.information.summary.mod, url_prefix='/api/summary')
37+
app.register_blueprint(api.combine.combine_dataframe.mod, url_prefix='/api/combine')
38+
app.register_blueprint(api.statistics.stats.mod, url_prefix='/api/statistics')
39+
40+
from pandamo.api.error_handlers import blueprint
41+
42+
app.register_blueprint(api.error_handlers.blueprint)

release packages/DynamoPandas/extra/pandasDynamo/pandamo/api/__init__.py

Whitespace-only changes.

release packages/DynamoPandas/extra/pandasDynamo/pandamo/api/combine/__init__.py

Whitespace-only changes.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import json
2+
from ast import literal_eval
3+
import pandas as pd
4+
import re
5+
import sys
6+
import os
7+
from flask import Blueprint
8+
from flask import jsonify
9+
from flask import request
10+
from flask import current_app as app
11+
import numpy as np
12+
from utillities.exceptions import ExceptionHelpers
13+
14+
mod = Blueprint('combine_dataframe', __name__)
15+
null = None
16+
17+
@mod.route('merge/', methods=["POST"])
18+
def merge():
19+
try:
20+
request_dict = request.get_json()
21+
left_df = request_dict['leftDf']
22+
right_df = request_dict['rightDf']
23+
how = request_dict['how']
24+
left_on = request_dict['left_on']
25+
right_on = request_dict['right_on']
26+
left_index = request_dict['left_index']
27+
right_index = request_dict['right_index']
28+
left_df = pd.read_json(json.dumps(eval(left_df)), orient='split')
29+
right_df = pd.read_json(json.dumps(eval(right_df)), orient='split')
30+
df = left_df.merge(right_df, how=how, left_on=left_on, right_on=right_on, left_index=left_index, right_index=right_index)
31+
df_json = df.to_json(orient='split')
32+
response = app.response_class(
33+
response=df_json,
34+
status=200,
35+
mimetype='application/json'
36+
)
37+
except:
38+
exception = ExceptionHelpers.format_exception(sys.exc_info())
39+
response = app.response_class(
40+
response=exception,
41+
status=400,
42+
mimetype='application/json'
43+
)
44+
return response
45+
46+
@mod.route('concatenate/', methods=["POST"])
47+
def concatenate():
48+
try:
49+
request_dict = request.get_json()
50+
df_json_list = request_dict['df_json_list']
51+
axis = request_dict['axis']
52+
join = request_dict['join']
53+
ignore_index = request_dict['ignore_index']
54+
df_list = []
55+
for i in df_json_list:
56+
df_list.append(pd.read_json(json.dumps(eval(i)), orient='split'))
57+
df = pd.concat(df_list, axis=axis, ignore_index=ignore_index)
58+
df_json = df.to_json(orient='split')
59+
response = app.response_class(
60+
response=df_json,
61+
status=200,
62+
mimetype='application/json'
63+
)
64+
except:
65+
exception = ExceptionHelpers.format_exception(sys.exc_info())
66+
response = app.response_class(
67+
response=exception,
68+
status=400,
69+
mimetype='application/json'
70+
)
71+
return response

release packages/DynamoPandas/extra/pandasDynamo/pandamo/api/dataframes/__init__.py

Whitespace-only changes.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import json
2+
import pandas as pd
3+
import sys
4+
from flask import Blueprint
5+
from flask import current_app as app
6+
from flask import request
7+
from utillities.exceptions import ExceptionHelpers
8+
9+
mod = Blueprint('create_dataframe', __name__)
10+
null = None
11+
# Create Dataframes
12+
@mod.route('by_dict/', methods=["POST"])
13+
def by_dict():
14+
try:
15+
request_dict = request.get_json()
16+
jsonstr = request_dict['jsonStr']
17+
df = pd.DataFrame(eval(jsonstr))
18+
df_json = df.to_json(orient='split')
19+
response = app.response_class(
20+
response=df_json,
21+
status=200,
22+
mimetype='application/json'
23+
)
24+
except:
25+
exception = ExceptionHelpers.format_exception(sys.exc_info())
26+
response = app.response_class(
27+
response=exception,
28+
status=400,
29+
mimetype='application/json'
30+
)
31+
return response
32+
33+
# Create Dataframes
34+
@mod.route('by_excel/', methods=["POST"])
35+
def by_excel():
36+
try:
37+
request_dict = request.get_json()
38+
file_path = request_dict['filePath']
39+
sheet_name = request_dict['sheetName']
40+
df = pd.read_excel(file_path, sheet_name=sheet_name, header=0, na_values=['', ' '])
41+
df_json = df.to_json(orient='split', date_format='iso')
42+
response = app.response_class(
43+
response=df_json,
44+
status=200,
45+
mimetype='application/json'
46+
)
47+
except:
48+
exception = ExceptionHelpers.format_exception(sys.exc_info())
49+
response = app.response_class(
50+
response=exception,
51+
status=400,
52+
mimetype='application/json'
53+
)
54+
return response
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from flask import Blueprint
2+
from flask import current_app as app
3+
from flask import jsonify
4+
from utillities.exception_class import EmptyDataframe
5+
6+
blueprint = Blueprint('error_handlers', __name__)
7+
8+
@blueprint.app_errorhandler(EmptyDataframe)
9+
def handle_invalid_usage(error):
10+
response = jsonify(error.to_dict())
11+
response.status_code = error.status_code
12+
return response

release packages/DynamoPandas/extra/pandasDynamo/pandamo/api/filters/__init__.py

Whitespace-only changes.
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
import json
2+
from ast import literal_eval
3+
import pandas as pd
4+
import re
5+
import sys
6+
import os
7+
from flask import Blueprint
8+
from flask import jsonify
9+
from flask import request
10+
from flask import current_app as app
11+
import numpy as np
12+
from utillities.exception_class import EmptyDataframe
13+
from utillities.exceptions import ExceptionHelpers
14+
15+
mod = Blueprint('filter_dataframe', __name__)
16+
null = None
17+
# Create Dataframes
18+
@mod.route('by_items/', methods=["POST"])
19+
def by_items():
20+
try:
21+
request_dict = request.get_json()
22+
jsonstr = request_dict['jsonStr']
23+
items = request_dict['items']
24+
axis = request_dict['axis']
25+
items = items
26+
axis = int(axis)
27+
df = pd.read_json(json.dumps(eval(jsonstr)), orient='split')
28+
df = df.filter(items=items, axis=axis)
29+
if df.empty:
30+
raise EmptyDataframe({"content": "Returned empty dataframe, check your filter index and items"}, status_code=400)
31+
df_json = df.to_json(orient='split', date_format='iso')
32+
response = app.response_class(
33+
response=df_json,
34+
status=200,
35+
mimetype='application/json'
36+
)
37+
except:
38+
exception = ExceptionHelpers.format_exception(sys.exc_info())
39+
response = app.response_class(
40+
response=exception,
41+
status=400,
42+
mimetype='application/json'
43+
)
44+
return response
45+
46+
@mod.route('by_regex/', methods=["POST"])
47+
def by_regex():
48+
try:
49+
request_dict = request.get_json()
50+
jsonstr = request_dict['jsonStr']
51+
items = request_dict['item']
52+
axis = request_dict['axis']
53+
axis = int(axis)
54+
df = pd.read_json(json.dumps(eval(jsonstr)), orient='split')
55+
df = df.filter(regex=items, axis=axis)
56+
if df.empty:
57+
raise EmptyDataframe({"content": "Returned empty dataframe, check your filter index and items"}, status_code=400)
58+
df_json = df.to_json(orient='split')
59+
response = app.response_class(
60+
response=df_json,
61+
status=200,
62+
mimetype='application/json'
63+
)
64+
except:
65+
exception = ExceptionHelpers.format_exception(sys.exc_info())
66+
response = app.response_class(
67+
response=exception,
68+
status=400,
69+
mimetype='application/json'
70+
)
71+
return response
72+
73+
@mod.route('by_contains/', methods=["POST"])
74+
def by_contains():
75+
try:
76+
request_dict = request.get_json()
77+
jsonstr = request_dict['jsonStr']
78+
items = request_dict['item']
79+
axis = request_dict['axis']
80+
axis = int(axis)
81+
df = pd.read_json(json.dumps(eval(jsonstr)), orient='split')
82+
df = df.filter(like=items, axis=axis)
83+
if df.empty:
84+
raise EmptyDataframe({"content": "Returned empty dataframe, check your filter index and items"}, status_code=400)
85+
df_json = df.to_json(orient='split')
86+
response = app.response_class(
87+
response=df_json,
88+
status=200,
89+
mimetype='application/json'
90+
)
91+
except:
92+
exception = ExceptionHelpers.format_exception(sys.exc_info())
93+
response = app.response_class(
94+
response=exception,
95+
status=400,
96+
mimetype='application/json'
97+
)
98+
return response

0 commit comments

Comments
 (0)