Giter VIP home page Giter VIP logo

kevinfasusi / supplychainpy Goto Github PK

View Code? Open in Web Editor NEW
277.0 34.0 97.0 75.85 MB

Supplychainpy is a Python library for supply chain analysis, modelling and simulation. The library assists a workflow that is reliant on Excel and VBA.

Home Page: http://www.supplychainpy.org/

License: BSD 3-Clause "New" or "Revised" License

Python 44.84% CSS 0.95% HTML 4.41% JavaScript 49.65% Gherkin 0.04% Shell 0.10%
python analyst flask operations-research forecasting monte-carlo-simulation supply-chain logistics

supplychainpy's Introduction

Build Status Documentation Status Coverage Status PyPI version Requirements Status Supplychainpy logo

Supplychainpy

Supplychainpy is a Python library for supply chain analysis, modelling and simulation. The library assists a workflow that is reliant on Excel and VBA. Quite often Demand Planners, Buyers, Supply Chain Analysts and BI Analysts have to create their tools in Microsoft Excel for one reason or another. In a perfect world, the ERP/MRP system would be sufficient, but this is not always the case. Some issues include:

  • Building reports and performing demand forecasts or planning inventory can become repetitive.
  • Visualisation tools are often platform dependent.

It is the aim of this library to:

  • Alleviate the reliance on Excel.
  • Free up the analysts from some of the most mundane tasks of building tools.
  • Provide a space for innovation and implementing advancements in the domain.
  • Leverage the robust and extensible Python ecosystem.

The library is currently in early stages of development, so not ready for use in production. For quick exploration, please see the Quick Guide below.

Quick Install

The easiest way to install supplychainpy is via pip: pip install supplychainpy.

An alternative is to clone the repository:

  1. Run the command: python setup.py sdist

  2. Navigate to the dist folder.

  3. Run the command: pip install supplychainpy-0.0.4.tar.gz

Dependencies

  • Numpy
  • Pandas
  • Flask
  • Flask-Restful
  • Flask-Restless
  • Flask-Script
  • Flask-SqlAlchemy
  • Flask-Uploads
  • Flask-WTF
  • Scipy
  • SqlAlchemy
  • TextBlob

Optional Dependencies

  • matplotlib
  • xlwings
  • openpyxl

Python Version

  • python 3.5

Quick Guide

Below is a quick example using a sample data file.

    
from supplychainpy.model_inventory import analyse
from supplychainpy.sample_data.config import ABS_FILE_PATH
from decimal import Decimal

analysed_data = analyse(
						file_path=ABS_FILE_PATH['COMPLETE_CSV_SM'],
						z_value=Decimal(1.28),
                        reorder_cost=Decimal(400),
                        retail_price=Decimal(455),
                        file_type='csv',
                        currency='USD'
                        )
analysis = [demand.orders_summary() for demand in analysed_data] 

output:

{'reorder_level': '4069', 'orders': {'demand': ('1509', '1855', '2665', '1841', '1231', '2598', '1988', '1988', '2927', '2707', '731', '2598')}, 'total_orders': '24638', 'economic_order_quantity': '44', 'sku': 'KR202-209', 'unit_cost': '1001', 'revenue': '123190000', 'quantity_on_hand': '1003', 'shortages': '5969', 'excess_stock': '0', 'average_orders': '2053.1667', 'standard_deviation': '644', 'reorder_quantity': '13', 'safety_stock': '1165', 'demand_variability': '0.314', 'ABC_XYZ_Classification': 'BY', 'economic_order_variable_cost': '15708.41', 'currency': 'USD'} ...

Alternatively using a Pandas DataFrame:

from supplychainpy.model_inventory import analyse
from supplychainpy.sample_data.config import ABS_FILE_PATH
from decimal import Decimal
import pandas as pd

raw_df = pd.read_csv(ABS_FILE_PATH['COMPLETE_CSV_SM'])
analyse_kv = dict(
					df=raw_df,
        			start=1,
        			interval_length=12,
        			interval_type='months',
        			z_value=Decimal(1.28),
        			reorder_cost=Decimal(400),
			        retail_price=Decimal(455),
        			file_type='csv',
        			currency='USD'
        			)

analysis_df = analyse(**analyse_kv)

Further examples please refer to the jupyter notebooks here. For more detailed coverage of the api please see the documentation.

New Reporting Feature

The reports include a dashboard, raw analysis, a recommendations feed and SKU level analysis with forecast:

reports

Launch reports can be achieved from the command line by:

    supplychainpy data.csv -a -loc absolute/path/to/current/directory -l

Other optional arguments include the host (--host default: 127.0.0.1 ) and port (-p default: 5000) arguments. Setting the host and ports allows the -l arguments can be replaced by the -lx. The -l arguments launch a small intermediary GUI for setting the port before launching the reports in a web browser. The -lx argument start the reporting process but does not launch a GUI or a browser window and instead expects the user to open the browser and navigate to the address hosting the reports as specified in the CLI. Another important flag is the currency flag (-cur) if unspecified, the currency is set to USD.

ChatBot

The reporting suite also features a chatbot for querying the analysis in natural language. This feature is still under development, but a version is available in 0.0.4 (not yet released).

chatbot

For a more detailed breakdown of the reporting features, please navigate to the documentation

Docker Image

The docker image for supplychainpy is built from the continuumio/anaconda3 image, with a pre-installed version of supplychainpy and all the dependencies (see the dockerfile for more).

    docker run -ti -v directory/on/host:directory/in/container --name fruit-smoothie -p5000:5000 supplychainpy/suchpy bash

The port, container name and directories can be changed as needed. Use a shared volume (as shown above) to present a CSV to the container for generating the report.

Make sure you specify the host as "0.0.0.0" for the reporting instance running in the container.

    supplychainpy data.csv -a -loc / -lx --host 0.0.0.0

Important Links

License

BSD-3-Clause

Change Log

0.0.5

Application

  • [Bug Fix] Using Flask's web server for the Dashboard on a public route on a standalone server (--host 0.0.0.0)
  • [Bug Fix] Javascript error while loading dashboard.
  • [New] Basic ability to run Monte Carlo Simulation and view summarised results in reporting suite.
  • [Update] Load scripts use multi-processing for forecast calculations when processing data file.
  • [Update] Load scripts using batch process.
  • [Update] Debug commandline argument for viewing logging output `--debug'.
  • [Update] Use Chat Bot from commandline with -c flag. EXPERIMENTAL
  • [Update] Recommendation generator takes into account forecasts
  • [Update] Flask Blueprints used for reporting views.

Documentation

  • [New] Wiki started on GitHub for more responsive updates to documentation including changes to source during development.
  • [Update] Tutorial.

0.0.4 [17 Nov 2016]

Release 0.0.4 has breaking API changes. Namespaces have changed in this release. All the modules previously in the "demand" package are now inside the "inventory" package. If you have been using the "model_inventory" module, then nothing has changed, there will not be any break in contracts.

Application

  • [New] Analytic Hierarchy Process.
  • [New] API supports Pandas DataFrame.
  • [New] Browser based reporting suite, with charts, data summaries and integrated chat bot.
  • [New] Dash Bot, a basic chat bot assistant for the data in the reporting suite. Query data using natural language.
  • [New] Command line interface for processing .csv to database, launching reports and chat bot.
  • [New] "Model_Demand" module containing simple exponential smoothing and holts trend corrected exponential smoothing.
  • [New] Summarise and filter your analysis.
  • [New] Holts Trend Corrected Exponential Smoothing Forecast and optimised variant (evolutionary algorithm for optimised alpha and gamma)
  • [New] Simple Exponential Smoothing (evolutionary algorithm for optimised alpha).
  • [New] Evolutionary Algorithms for Smoothing Level Constants (converges on better smoothing levels using genetic algorithm)
  • [New] SKU and inventory profile recommendations generator.
  • [Update] Explicit internal and public API.
  • [Update] Excess, shortages added to the UncertainDemand order_summary.
  • [Update] Moved abc_xyz.py, analyse_uncertain_demand.py, economic_order_quantity.py and eoq.pyx from "demand" to "inventory" package
  • [Update] "demand" package now contains: evolutionary_algorithms.py, forecast_demand.py and regression.py
  • [Update] retail_price added to model_inventory.analyse_orders.
  • [Update] backlog added to the data format for loading into the analysis.
  • [Update] Unit Tests.
  • [Update] Docstrings.

Documentation

  • [New] Reporting Suite Walk Through.
  • [New] Declare public API explicitly. describe and document each module and function, give an example also add to website tutorial as Jupyter notebook.
  • [New] Docker for supplychainpy quick guide.
  • [New] Analytic Hierarchy Process quick guide.
  • [New] Inventory Modeling.
  • [New] Demand Planning with Pandas.
  • [Update] Tutorial.
  • [Update] Quick Guide.

0.0.3 [30 Mar 2016]

Application

  • [Update] Compiled Cython (eoq and simulation modules) for OS X, Windows and Linux.
  • [Update] Removed z_value, file_type, file_path and reorder_cost parameters from simulate.run_monte_carlo.

Documentation

  • [Update] Quick Guide

0.0.2 [30 Mar 2016]

Application

  • [New] monte carlo simulation and simulation summary using Cython optimisation.
  • [New] orders analysis optimisation, based on results of the monte carlo simulation.
  • [New] simulate module to api.
  • [New] weighted moving average forecast.
  • [New] moving average forecast.
  • [New] mean absolute deviation.
  • [Update] economic order quantity using Cython optimisation.
  • [Update] unit tests.

Documentation

  • [New] Formulas and Equations.
  • [Update] Quick Guide.
  • [Update] Tutorial.
  • [Update] README.md
  • [Update] updated data.csv.

0.0.1 [20 Feb 2016]

Application

  • [New] inventory analysis for uncertain demand. Analyse orders from .csv, .txt or from dict.
  • [New] inventory analysis summary for uncertain demand. ABC XYZ, economic order quantity (EOQ), reorder level (ROL), demand variability and safety stock.

Documentation

  • [New] Quick Guide.
  • [New] Tutorial.
  • [New] Installation.

supplychainpy's People

Contributors

arpzilla avatar kevinfasusi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

supplychainpy's Issues

Monte Carlo Simulation

Complete monte carlo simulation for inventory consumption over specified period. Include summary position, allow client to declare forecast method and increase, decrease or override safety stock.

Getting more done in GitHub with ZenHub

Hola! @KevinFasusi has created a ZenHub account for the KevinFasusi organization. ZenHub is the only project management tool integrated natively in GitHub – created specifically for fast-moving, software-driven teams.


How do I use ZenHub?

To get set up with ZenHub, all you have to do is download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.

What can ZenHub do?

ZenHub adds a series of enhancements directly inside the GitHub UI:

  • Real-time, customizable task boards for GitHub issues;
  • Multi-Repository burndown charts, estimates, and velocity tracking based on GitHub Milestones;
  • Personal to-do lists and task prioritization;
  • Time-saving shortcuts – like a quick repo switcher, a “Move issue” button, and much more.

Add ZenHub to GitHub

Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @KevinFasusi.

ZenHub Board

Add public API for Recommendations

Objective

Add a public API for the recommendations feature.

Guidance

Using the recommendations feature, add a public API to model_decisions.py. Allow the function to use run_sku_recommendation() and run_profile_recommendation().

For example:

def recommend( type: str, analysed_data: UncertainDemand, forecast: dict)
    if type == 'sku':
        run_sku_recommendation()
    else:
        run_profile_recommendation()
   return recommendation

However, do not use strings in the conditional statement. You probably don't even need to use a conditional statement.

Please remember to add a docstring and a test for this API.

Warehouse Stock Rebalancing.

Redistribute stock across warehousing locations, based on shortages, excess quantity on hand and local forecast.

Jupyter compatibility

On trying to import a block 'analyse' from 'supplychainpy.model_inventory ' an error occurs:

' File "C:\Users\User\Anaconda2\lib\site-packages\supplychainpy-0.0.4-py2.7-win-amd64.egg\supplychainpy\model_inventory.py", line 54
def analyse(currency: str, z_value: Decimal = 1.28, reorder_cost: Decimal = 10, interval_length: int = 12,
^
SyntaxError: invalid syntax'

The code is not typical for Python
How could this problem be fixed?

Installed instance cannot locate database, when launching reporting suite.

Blank formatted reports launch when using the cli:

$supplychainpy <file_path> -p -l -loc <database_path>

or

$supplychainpy <file_path> -p -l

Both launch the GUI for starting the local server and selecting a port, both fail to publish any analysis to the reports from the database.

Not a problem in development if you run the commands from the root folder.

Not able to start dashboard

I am trying to execute three command to start supplychain . But nothing gave me success. Please supplychain expert.. please help me resolve this issue. Given as below

uwsgi --socket 0.0.0.0:5000 --protocol=http -w wsgi:app

above command gave me below error

Traceback (most recent call last):
File "./wsgi.py", line 40, in
db.create_all()
File "/root/environments/my_env/lib/python3.5/site-packages/flask_sqlalchemy/init.py", line 1007, in create_all
self._execute_for_all_tables(app, bind, 'create_all')
File "/root/environments/my_env/lib/python3.5/site-packages/flask_sqlalchemy/init.py", line 999, in _execute_for_all_tables
op(bind=self.get_engine(app, bind), **extra)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/sql/schema.py", line 3949, in create_all
tables=tables)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1928, in _run_visitor
with self._optional_conn_ctx_manager(connection) as conn:
File "/usr/lib/python3.5/contextlib.py", line 59, in enter
return next(self.gen)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1921, in _optional_conn_ctx_manager
with self.contextual_connect() as conn:
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 2112, in contextual_connect
self._wrap_pool_connect(self.pool.connect, None),
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 2151, in _wrap_pool_connect
e, dialect, self)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1465, in _handle_dbapi_exception_noconnection
exc_info
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
raise value.with_traceback(tb)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 2147, in _wrap_pool_connect
return fn()
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/pool.py", line 387, in connect
return _ConnectionFairy._checkout(self)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/pool.py", line 766, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/pool.py", line 516, in checkout
rec = pool._do_get()
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/pool.py", line 1229, in _do_get
return self._create_connection()
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/pool.py", line 333, in _create_connection
return _ConnectionRecord(self)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/pool.py", line 461, in init
self.__connect(first_connect_check=True)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/pool.py", line 651, in __connect
connection = pool._invoke_creator(self)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/engine/strategies.py", line 105, in connect
return dialect.connect(*cargs, **cparams)
File "/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 393, in connect
return self.dbapi.connect(*cargs, **cparams)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file
unable to load app 0 (mountpoint='') (callable not found or import error)

supplychainpy supplychainpy/csvdata/tiny.csv -a -loc / -lx --host 0.0.0.0

2017-09-27 07:41:45,229 - INFO - FUNCTION: Called public api for simple_exponential_smoothing_forecast..simple_exponential_smoothing_forecast EXECUTION TIME: 25.968560626002727 MESSAGE:
2017-09-27 07:41:45,233 - INFO - FUNCTION: supplychainpy.inventory.analyse_uncertain_demand._generate_optimised_ses_forecast EXECUTION TIME: 25.972049572999822 MESSAGE: Called to generate optimised SES forecast.
2017-09-27 07:41:49,919 - INFO - FUNCTION: Called public api for simple_exponential_smoothing_forecast..simple_exponential_smoothing_forecast EXECUTION TIME: 30.65244018600788 MESSAGE:
2017-09-27 07:41:49,920 - INFO - FUNCTION: supplychainpy.inventory.analyse_uncertain_demand._generate_optimised_ses_forecast EXECUTION TIME: 30.653985768003622 MESSAGE: Called to generate optimised SES forecast.
[Errno 2] No such file or directory: '/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/_pickled/ses_forecast_results'
/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/_pickled/ses1.pickle
/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/_pickled/ses1.pickle
file not present. [Errno 2] No such file or directory: '/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/_pickled/ses_forecast_results'
2017-09-27 07:41:49,958 - INFO - Holt's trend corrected exponential smoothing forecast for SKU: KR202-209
Object id: 139753470415760
2017-09-27 07:41:49,965 - INFO - Holt's trend corrected exponential smoothing forecast for SKU: KR202-210
Object id: 139753470415760
Argument 'individual' has incorrect type (expected tuple, got list)
[COMPLETED]

loading database ...[COMPLETED]

Loading recommendations into database... Traceback (most recent call last):
File "/root/environments/my_env/bin/supplychainpy", line 11, in
load_entry_point('supplychainpy==0.0.4', 'console_scripts', 'supplychainpy')()
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/supplychain.py", line 208, in main
load_db(file=args.filenames, location=args.location)
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/launch_reports.py", line 255, in load_db
load.load(file, location)
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/reporting/load.py", line 507, in load
load_recommendations(summary=ia, forecast=holts_forecast, analysed_order=orders_analysis)
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/reporting/load.py", line 516, in load_recommendations
recommend = run_sku_recommendation(analysed_orders=analysed_order, forecast=forecast)
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/bi/recommendation_generator.py", line 57, in run_sku_recommendation
recommend.run(sku.sku_id)
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/bi/_recommendation_state_machine.py", line 76, in run
(new_state, sku_id) = handler(sku_id)
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/bi/_recommendations.py", line 347, in forecast
if self._htces_forecast.get(sku)['statistics']['trend']:
TypeError: 'NoneType' object is not subscriptable

supplychainpy -a -loc / -lx -cur EUR --debug --host 0.0.0.0

/root/environments/my_env/lib/python3.5/site-packages/sqlalchemy/sql/sqltypes.py:596: SAWarning: Dialect sqlite+pysqlite does not support Decimal objects natively, and SQLAlchemy must convert from floating point - rounding errors and other issues may occur. Please consider storing Decimal numbers as strings or integers on this platform for lossless storage.
'storage.' % (dialect.name, dialect.driver))
[2017-09-27 07:47:40,726] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functionsrule.endpoint
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/reporting/blueprints/dashboard/views.py", line 82, in dashboard
largest_excess=largest_excess, total_excess=total_excess)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/templating.py", line 133, in render_template
return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
File "/root/environments/my_env/lib/python3.5/site-packages/jinja2/environment.py", line 869, in get_or_select_template
return self.get_template(template_name_or_list, parent, globals)
File "/root/environments/my_env/lib/python3.5/site-packages/jinja2/environment.py", line 830, in get_template
return self._load_template(name, self.make_globals(globals))
File "/root/environments/my_env/lib/python3.5/site-packages/jinja2/environment.py", line 804, in _load_template
template = self.loader.load(self, name, globals)
File "/root/environments/my_env/lib/python3.5/site-packages/jinja2/loaders.py", line 113, in load
source, filename, uptodate = self.get_source(environment, name)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/templating.py", line 57, in get_source
return self._get_source_fast(environment, template)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/templating.py", line 85, in _get_source_fast
raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: dashboard/dashboard.html
2017-09-27 07:47:40,739 - INFO - 78.104.57.3 - - [27/Sep/2017 07:47:40] "GET / HTTP/1.1" 500 -
[2017-09-27 07:47:40,968] ERROR in app: Exception on /favicon.ico [GET]
Traceback (most recent call last):
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1590, in dispatch_request
self.raise_routing_exception(req)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1573, in raise_routing_exception
raise request.routing_exception
File "/root/environments/my_env/lib/python3.5/site-packages/flask/ctx.py", line 294, in match_request
self.url_adapter.match(return_rule=True)
File "/root/environments/my_env/lib/python3.5/site-packages/werkzeug/routing.py", line 1573, in match
raise NotFound()
werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1512, in handle_user_exception
return self.handle_http_exception(e)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/app.py", line 1471, in handle_http_exception
return handler(e)
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/reporting/app.py", line 32, in page_not_found
return flask.render_template('404.html'), 404
File "/root/environments/my_env/lib/python3.5/site-packages/flask/templating.py", line 134, in render_template
context, ctx.app)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/templating.py", line 116, in _render
rv = template.render(context)
File "/root/environments/my_env/lib/python3.5/site-packages/jinja2/environment.py", line 1008, in render
return self.environment.handle_exception(exc_info, True)
File "/root/environments/my_env/lib/python3.5/site-packages/jinja2/environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "/root/environments/my_env/lib/python3.5/site-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "/root/environments/my_env/lib/python3.5/site-packages/supplychainpy/reporting/templates/404.html", line 1, in top-level template code
{% extends "layouts/base.html" %}
File "/root/environments/my_env/lib/python3.5/site-packages/flask/templating.py", line 57, in get_source
return self._get_source_fast(environment, template)
File "/root/environments/my_env/lib/python3.5/site-packages/flask/templating.py", line 85, in _get_source_fast
raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: layouts/base.html

I hope this will help to provide solution. csv data i got it from supplychain documentation only.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.