Skip to main content

project management toolbox

Project description

TODO

  • excel-dashboarder: we can use one single instance of ExcelDashboarder to produce several excel files:
    • Constructor should accept the configuration
    • Function "excelize" should only accept data to print in the excel
    • Objective: instantiating one singe dashboarder, that could be used to produce similar excel with different data

A python tool box

Our python tool-box is supposed to help professionals in their day-to-day work.

Everything started when reaching blocking limitations with MS Excel, forcing us to search for alternatives. We learned Python, and started to implement reusable snippets.

As of 2021, we have a first workable snippet (yet perfectible), and we target to progressively (even-though slowly) enrich this tool-box, focusing on "IT project management" related stuff (as a start?).

In case you have feedbacks, ideas or suggestions, please let us know!


Table of contents

  • The project management toolbox
    • Predictability
      • Date
  • The technicalities
    • PyPi versions
    • Install
    • Use
    • Contribute

The project management toolbox

Predictability

By definition, a good project manager is predictable, right?

But what do we mean by “being predictable”? Let’s say that “Predictabilty” is about accurately predicting early enough the project outcomes, to enable timely corrective actions that increase the likelihood of achieving targets and reducing outcome variance.

Ok, fair enough. But how do we measure a project manager “predictable-ness”?

Date predictability

The module com.enovation.toolbox.predictability.dp_date_predictability exposes several commands to deal with date predictability:

Command Description
dp_compute To compute the predictability for historical prediction of a date (eg. go live date, deal closure date)
dp_persist To persist into an excel file the outputs from the command dp_compute
dp_load To load the outputs from the command dp_compute that were persisted into an excel file
dp_graph To visualize the outputs from the command dp_compute into a graph powered by dash
dp_demo To demonstrate some of the above command

The technicalities

PyPi Versions

  • 0.0.5: date predictability - workable version
  • 0.0.15: with a revamped readme.md, and 'demo' command, before sharing with "early adopters"
  • 0.0.20: dp-demo fixed
  • 0.0.21: click commands to handle json, excel dashboard with vba, dash with bubbles
  • 0.0.22: enriched wheel including assets and json files
  • 0.0.24: excel dashboard with "worksheet.set_column" and "worksheet.freeze_panes"
  • 0.0.25: correction in a json schema for excel dashboarder: "merged" key word within widget_table_zoom.json
  • 0.0.26: constant in ExcelDashboarder for "worksheet.set_column"
  • 0.0.27: constants in ExcelDashboarder for "worksheet.set_column", updated dependencies, and several FutureWarnings fixed...
  • 0.0.28: constants in ExcelDashboarder for "worksheet.set_column"
  • 0.0.29: excel dashboard: parameterized workbook.options (to print NaN in excel)
  • 0.0.32: excel dashboard: parameterized worksheet.set_row (to collapse/ hide rows...)
  • 0.0.33: excel dashboard: worksheet.outline_settings() to group "above" and on the "left"
  • 0.0.34: excel dashboard: minor adjustements
    • Correct number of lines in the table, without or without total row: depending on whether there is a total row, we adjust table range (before, there was an extra empty line when "no total row")
    • Correct conditional formatting range, which used to ignore the latest line in the table
    • Excel_dashboard > test_widget_table: in a table, add a "formula column" that references other columns... "formula": "=[[#This Row],[jsg formula col 2]]+5000"
  • 0.0.35: excel dashboard: correction to handle pandas.NaTType values in table widget.
  • 0.0.36: introduction of module "data handler"
  • 0.0.37: Enhancement in data handler for datetime64:
    • Modifier 'type_columns': mapping 'date' to 'object' and 'datetime' to 'datetime64[ns]'
    • Modifier 'audit_column__stamped': transcode 's_column_to_stamp' to 'date' if 'datetime[64]' (to avoid mysterious exception...)
  • 0.0.38: Adjustments in data handler
    • Modifier 'add_eval' > 'enov_lambda': added comment to illustrate, and 'axis' to process columns
    • Modifier 'add_eval': the calling dataframe can now be called from the expression. Comment added to illustrate
  • 0.0.39: df-load-xls can now select the sheet to load
  • 0.0.40: new Excel functions, adaptation to latest version for pandas.dataframe and to_datetime function which becomes stricter, packaging setup.cfg to project.toml

Dependencies

When installing com-enovation, the following packages will be deployed automatically by pip:

  • pandas: to handle dataframes, series, etc
  • click: to handle command line
  • enlighten: to display a progress bar for lengthy steps
  • openpyxl: to handle xlsx files
  • xlwt: that is a dependency for pandas.io.excel
  • xlrd: yet another dependency for pandas.io.excel
  • dash: to graph
  • scipy: to compute date predictability without resampling measures, using special.psi function
  • xlsxwriter: to produce excel spreadsheet. Used in excel_dashboard
  • jsonschema: to check json parameters. Used in excel_dashboard
  • pywin32: to access Windows API from Python, such as opening Excel, refreshing data and saving. Used in helper.excel. Note: only working on Windows... Cannot be installed on MAC or Linux.

Install

  • Check Python 3 is installed on your machine
  • Check pip is installed on your machine
  • Install the com-enovation tool-box: python3 -m pip install com-enovation
    • You can test by launching a python interpreter: python3
    • And load the package: >>> import com.enovation
  • Ensure the deployed script is added to your PATH
  • Upgrade the com-enovation tool-box: pip install --upgrade com-enovation

Use

  • You can get help by executing enov -- help in a terminal
  • You have commands that you can run like enov load-csv --help
  • Commands have:
    • Parameters that you can provide like enov load-csv ./the-csv-file-to-load.csv
    • Options that you can provide like enov load-csv ./the-csv-file-to-load.csv -c the-first-column-label-to-load -c the-second-one
  • You can call for more logs by calling enov --verbose load-csv ./the-csv-file-to-load.csv -c the-first-column-label-to-load -c the-second-one

Contribute

Generate and publish the distribution

  • from root directory

  • build the distribution files and directories: python3 -m build

    • Directories build and dist should be generated
    • In case you face an error No module named build, you need first to run pip install build
  • publish to pypi: python3 -m twine upload --repository pypi dist/*

    • In case you face an error No module named twine, you need first to run pip install twine
    • Package viewable at pypi
  • Commands to execute from the root directory com.enovation

Pycharm configuration

  • In the left pan:

    • Directory src: mark as Sources Root
    • Directory tests: DO NOT mark as anything...
  • Unit test configuration, from menu Run > Edit Configurations...

    • Configuration > Target > Script path: /Users/jsg/PycharmProjects/com.enovation/tests
    • Configuration > Working directory: /Users/jsg/PycharmProjects/com.enovation/
    • Configuration > Add content roots to PYTHONPATH: checked
    • Configuration > Add source roots to PYTHONPATH: checked

Python stuff

  • Check we have latest versions:

    • pip: python3 -m pip install --upgrade pip
    • build to generate the distribution: python3 -m pip install --upgrade build
    • twine to publish to pypi: python3 -m pip install --upgrade twine
  • Update packages using pip

    • Check all packages are fine: pip check
    • List all packages outdated: pip list --outdated
    • Update all packages outdated: pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
  • A simple example package. You can use Github-flavored Markdown to write your content.

  • To debug a running Click application:

Git stuff

  • To resynchronize local environment from remote "master" git
    • In the Local > Master
    • Fetch: we get the latest history from the remote
    • Update: we load the latest files locally (and the full tags are all on the head revision)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

com_enovation-0.0.40.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

com_enovation-0.0.40-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file com_enovation-0.0.40.tar.gz.

File metadata

  • Download URL: com_enovation-0.0.40.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for com_enovation-0.0.40.tar.gz
Algorithm Hash digest
SHA256 d5ba6f401e404a3d92750ea010af24fca4f84f1fe5979adf25492244bf743a7a
MD5 e98c04d2f72a0c333e7b5e6ef9d40c85
BLAKE2b-256 98886a2be68a4b50aab3ebc68d8547bbb61614ad5a9ced5e230786ab56753147

See more details on using hashes here.

File details

Details for the file com_enovation-0.0.40-py3-none-any.whl.

File metadata

File hashes

Hashes for com_enovation-0.0.40-py3-none-any.whl
Algorithm Hash digest
SHA256 93f3b408c9cedac17fc196df4d4a8b3b299c5b0a9bdb3d228af0faf32de2ce2d
MD5 17c34250d4b028d5aedb82e2993473fa
BLAKE2b-256 b993aac3a3552e51c8d088db9800bb883165b071b208335e88e32cfd1fd7f0ed

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page