{ "info": { "author": "Sheri Mickelson", "author_email": "mickelso@ucar.edu", "bugtrack_url": null, "classifiers": [], "description": "August 19, 2016\r\n\r\n======================================\r\n\r\nPyAverager\r\n\r\n======================================\r\n\r\nA package used for computing averages from climate model output.\r\n\r\nAuthors: Sheri Mickelson, Kevin Paul, and John Dennis\r\nVersion: 0.9.10\r\nCopyright: Contained within LICENSE.txt\r\nComments and feedback: mickelso@ucar.edu\r\n\r\n======================================\r\nWhat the PyAverager Can Do\r\n======================================\r\n\r\nThe PyAverager can create the climatology files needed by the AMWG, OMWG, Land, and Ice CESM diagnostic packages (the full list of averages is defined within the \u2018Specification\u2019 section). It is able to compute averages from previously generated averages (such as monthly averages for season averages) or from scratch. The PyAverager can operate on monthly time-slice and time-series files that exist in the same directory.\r\n\r\n======================================\r\nDependencies\r\n======================================\r\n\r\nThe PyAverager depends on the PyNIO, mpi4py, and PyTools packages to be installed on your system. PyNIO is needed for NetCDF file I/O. mpi4py and PyTools are needed for the parallel communication, though it is possible to run the PyAverager in serial mode without mpi4py. \r\n\r\nIf you are not running on a CESM supported machine, installation information can be found at:\r\nPyNIO: https://www.pyngl.ucar.edu/Download/\r\nMpi4py: http://mpi4py.scipy.org/ \r\n(git clone https://bitbucket.org/mpi4py/mpi4py.git)\r\nPyTools: https://www2.cisl.ucar.edu/tdd/asap/parallel-python-tools-post-processing-climate-data\r\n(svn co https://proxy.subversion.ucar.edu/pubasap/pyTools/tags/v0.3/)\r\n\r\nCESM Supported Machine Information (steps to take to get these packages into your path):\r\n\r\nYellowstone:\r\nAdd the following to the top of your bsub script or execute them on the command line and then type module save to always keep them in your environment:\r\nmodule load python \r\nmodule load all-python-libs\r\nmodule load asaptools\r\n(If asaptools fails to load, it has since been added to all-python-libs module)\r\n\r\nHow To Install ASAP PyTools\r\n- git clone https://github.com/NCAR-CISL-ASAP/ASAPPyTools pytools\r\n- cd into pytools\r\n- python setup.py install --user\r\n\r\n======================================\r\nBuilding and Installing the PyAverager\r\n======================================\r\n\r\nCheck out the source code (3 options): \r\n- git clone https://github.com/sherimickelson/pyAverager\r\n- pip install pyAverager --user \r\n\r\nIf checking out the code via svn or git, you must install the pyAverager (the pip method will install the package for you).\r\no\t$ cd PyAverager\r\no\t$ python setup.py install --user\r\n\r\nMake sure the install location is added to your $PYTHONPATH\r\no\tYou can also type python to get the interactive terminal and then type\r\nfrom pyaverager import PyAverager, specification\r\nYou will get an error if it is not in your path\r\n\r\nTo install documentation, run:\r\no\t$ doxygen Doxyfile \r\nThe documentation will be created in the apidocs directory.\r\n\r\n======================================\r\nRunning the Examples\r\n======================================\r\n\r\nRunning the examples on Yellowstone:\r\n(For other machines, you will need to create a queue submission script similar to examples/ runAvg_mpi.csh)\r\n\r\no\t$ cd examples\r\no\tOpen runAvg_mpi.csh for editing\r\no\tSet the correct project number to run under\r\no\tSelect an example to run (control_*.py)\r\no\tEdit the control_*.py script you would like to run\r\n(See the Specifier section below for more details on editing the control script)\r\no\tRun \r\no\t$ bsub < runAvg_mpi.csh\r\n\r\n======================================\r\nSpecification\r\n======================================\r\n\r\nThe PyAverager is a python library that is referenced from another python script. In order to run the PyAverager, you need to specify parameters so the average knows what types of averages to compute, input/output locations, and any averaging options you would like to add. The example directory contains several control_.py files that you can use as templates. You can copy one of these scripts and modify the top section to fit your data.\r\n\r\nCESM naming conventions that the PyAverager follows by default:\r\n\r\nSlice: $CASE.$comp.$stream.$year-$month.nc\r\n\r\nSeries: $CASE.$comp.$stream.$var.$year1$month1-$year2$month2.nc\r\n\r\n(If your file names do not match this pattern, you will need to pass the file_pattern variable to the specifier)\r\n\r\n\r\n======================================\r\nTypes of Averages\r\n======================================\r\n\r\nThe table below lists the types of averages the PyAverager can compute. \r\n============================================================================================================================== \r\nAverage Option\tDescription\t Output Name\t Can be Weighted? Can Be Created As a Dependency?\r\n==============================================================================================================================\r\nya\t Yearly Average\t $CASE.$YEAR.nc\t Yes \t No\r\ntavg\t Ocn average across years\ttavg.$Year1-$Year2.nc\t Yes\t Yes\r\nannall\t Land model, annual averages \r\n concat together\t $CASE_ANN_ALL.nc\t Yes\t Yes\r\nmoc\t Ocn MOC file\t $CASE_moc.nc\t Yes\t Yes\r\nhor.meanyr\tOcn hor.mean year file\t $REG_hor.meanyr.$YEAR.nc\t Yes\t Yes\r\nhor.meanConcat\tOcn, concat of hor.meayr\t$REG_hor_mean_hor.meanConcat.\r\n $CASE.$Year1-$Year2.nc\t Yes\t Yes\r\nmocm\t Ocn MOCM\t $CASE_mocm.nc\t No\t No\r\nann\t Annual Average\t $CASE_ANN_climo.nc\t Yes\t Yes\r\ndjf\t Winter Average\t $CASE_DJF_climo.nc\t Yes\t Yes\r\nmam\t Spring Average\t $CASE_MAM_climo.nc\t Yes\t Yes\r\njja\t Summer Average\t $CASE_JJA_climo.nc\t Yes\t Yes\r\nson\t Fall Average\t $CASE_SON_climo.nc\t Yes\t Yes\r\njan\t January Average\t $CASE_01_climo.nc\t Yes\t Yes\r\nfeb\t February Avg\t $CASE_02_climo.nc\t Yes\t Yes\r\nmar\t March Average\t $CASE_03_climo.nc\t Yes\t Yes\r\napr\t April Average\t $CASE_04_climo.nc\t Yes\t Yes\r\nmay\t May Average\t $CASE_05_climo.nc\t Yes\t Yes\r\njun\t June Average\t $CASE_06_climo.nc\t Yes\t Yes\r\njul\t July Average\t $CASE_07_climo.nc\t Yes\t Yes\r\naug\t August Average\t $CASE_08_climo.nc\t Yes\t Yes\r\nsep\t Sept Average\t $CASE_09_climo.nc\t Yes\t Yes\r\noct\t Oct Average\t $CASE_10_climo.nc\t Yes\t Yes\r\nnov\t Nov Average\t $CASE_11_climo.nc\t Yes\t Yes\r\ndec\t Dec Average\t $CASE_12_climo.nc\t Yes\t Yes\r\nmavg\t Concat of all monthly averages\tmavg.$Year1-$Year2.nc\t No\t Yes\r\nmons\t Lnd, concat of monthly averages\t$CASE_MONS_climo.nc\t No\t Yes\r\njfm\t Ice Winter Avg\t $CASE_jfm_climo.nc\t Not Now\tYes\r\nfm\t Ice Feb & Mar Avg\t $CASE_fm_climo.nc\t Not Now\tYes\r\namj\t Ice Spring Avg\t $CASE_amj_climo.nc\t Not Now\tYes\r\njas\t Ice Summer Avg\t $CASE_jas_climo.nc\t Not Now\tYes\r\nond\t Ice Fall Avg\t $CASE_ond_climo.nc\t Not Now\tYes\r\non\t Ice Oct & Nov Avg\t $CASE_on_climo.nc\t Not Now\tYes\r\npreproc\t Ice pre proc file\t ice_vol$CASE_$Year1-$Year2.nc\t Not Now\tYes\r\n\r\n======================================\r\nCan be created as a dependency? option:\r\n======================================\r\nThe averages that are listed in the above table as being able to create averages as dependencies have the ability to use previously calculated averages to calculate a new average. To use this option, append dep_ in front of the average name (ie, dep_jja). Without dep_, a jja average would loop over all June, July, and August values within the year ranges and create an average. With dep_, the PyAverager will create and output a June average, July average, and August average. Then it will open these average files and average these values to create the jja average file. In most cases, it is faster to run with dep_, but it should be pointed out that the answers between using and not using the dep_ option will differ due to order of operation.\r\n\r\n======================================\r\nSpecifier Arguements\r\n======================================\r\nSee examples/control.py for how to set all available options to send to the create_specifier function. \r\n\r\n===\r\nVariables that must be passed to the specification.create_specifier class:\r\n===\r\no\tin_directory: directory where the input data is located\r\no\tout_directory: directory where the output will be produced\r\no\tprefix: the case name, plus component name (ie. b40.20th.track1.1deg.006.cam2.h0)\r\no\tsuffix: the end of the input file names (usually nc)\r\no\tdate_pattern: 'yyyymm-yyyymm'\r\no\tavg_list: a list of averages to compute DEFAULT = Empty List\r\nFormat: ['ya:1850','mavg:1850:1890'] ya is the only average to take one year. All other averages expect a start year and end year separated by a colon. The available average choices are listed in the above table. \r\n\r\n===\r\nVariables that are mandatory for the Ice and Ocean Diags:\r\n===\r\no\tThe following variables are used by the Ocean Model Diags for the hor.meanConcat file creatation:\r\no\tmean_diff_rms_obs_dir: directory that contains the obervartion files needed to calculate the hor.mean.Concat file (Ocean Model). \r\no\tregion_obs_file_suffix: the suffix of region obs files found in the mean_diff_rms_obs_dir directory\r\no\tregion_nc_var: variable name the contains the region mask information (Ocean Model)\r\no\tregions: regions to create files for (ie[1:'Sou',2:'Pac']) region int that corresponds to the region_mask, region name.\r\no\tregion_wgt_var: variable name that contains the region weight info\r\no\tobs_file: observation file (contains the region_nc_var and region_wgt_var)\r\no\tobs_dir: directory where the obs_file is located in\r\n\r\no\tThe following variables are used by the Ice Model Diags for the Pre_Proc file:\r\no\tice_obs_file: a netCDF file that contains area/weight information\r\no\tncl_location: the location of the ncl script used to create the reg_file (usually provided with this source code in pyaverager/ directory \r\no\treg_file: the name of the netcdf file that contains the region mask information. If it does not exist, it will be created for you.\r\n\r\n===\r\nOptional variables that can be passed to the specification.create_specifier class: \r\n===\r\no\tncformat: either 'netcdf4c' (netcdf4 compressed (lev=1)), 'netcdf4' (netcdf classic), and 'netcdf' (netcdf3 classic) DEFAULT = 'netcdf4c'\r\no\tfile_pattern: needed for non-cesm data\r\nFor file name: tasmax_Amon_GFDL-FLORB01_FLORB01-P1-ECDA-v3.1-011980_r10i1p1_198001-198012.nc\r\nUse: ['$var','_','$prefix','_','$m_id','_','$date_pattern','.','$suffix']\r\no\thist_type: either slice or series DEFAULT = 'slice'\r\no\tm_id: experiment/or other unique id (can be used to id ensemble members)\r\no\tweighted: Boolean to weight averages (when available, see about table) DEFAULT = False\r\no\tsplit: Are the files split between lat coordinates (used in cice series files)\r\nDEFAULT = False\r\no\tsplit_files: strings differentiating the different pieces DEFAULT = null\r\no\tsplit_orig_size: list of lat/lon names and their original full size DEFAULT = null\r\no\tvarlist: ['a','list','of','vars','to','avg'] DEFAULT = Full list\r\no\tclobber: If a user specified average exists on disk, delete if set to true. DEFAULT=False\r\no\tserial: run in serial or parallel mode DEFAULT=FALSE (parallel mode)\r\no\tmain_comm: the simple_comm object. If one isnt passed in, one will be initialized for you.\r\n\r\n======================================\r\nTo generate the obs file needed for the Ocean hor.meandiff calculation:\r\n(or yellowstone users can copy/use files in /glade/p/work/mickelso/PyAvg-OMWG-obs/obs)\r\n======================================\r\nRequired: \r\n- From omwg obs_data: \r\n PHC2_TEMP_gx1v6_ann_avg.nc and SALT PHC2_SALT_gx1v6_ann_avg.nc\r\n- POP history file\r\nDirections:\r\n- Copy PHC2_TEMP_gx1v6_ann_avg.nc to obs.nc\r\n- ncks -A -v SALT PHC2_SALT_gx1v6_ann_avg.nc obs.nc\r\n- ncks -A -v TAREA,REGION_MASK a_pop_history_file.nc obs.nc\r\n- ncrename -O -d X,nlon -d Y,nlat -d depth,z_t obs.nc\r\n- ncatted -a _FillValue,TEMP,c,f,-99. obs.nc\r\n- ncatted -a _FillValue,SALT,c,f,-99. obs.nc\r\n- ncatted -a missing_value,TLAT,d,, obs.nc\r\n- ncatted -a missing_value,TLONG,d,, obs.nc\r\n- ncatted -a _FillValue,TLAT,d,, obs.nc\r\n- ncatted -a _FillValue,TLONG,d,, obs.nc\r\n- ncatted -a _FillValue,TAREA,c,f,-99. obs.nc\r\n- ncatted -a _FillValue,TAREA,m,f,1.0e36 obs.nc\r\n- ncatted -a _FillValue,TAREA,m,f,-99 obs.nc\r\n- ncatted -a _FillValue,,m,f,-99 obs.nc\r\n- ncatted -a _FillValue,TAREA,m,f,-99 obs.nc\r\n- ncatted -a _FillValue,TAREA,o,f,-99 obs.nc\r\n- ncatted -a _FillValue,REGION_MASK,o,i,99 obs.nc\r\n\r\n======================================\r\nTo generate the regional obs files needed for the Ocean hor.meandiff calculation:\r\n(or yellowstone users can copy/use files in /glade/p/work/mickelso/PyAvg-OMWG-obs/obs)\r\n======================================\r\nRequired: \r\n- From omwg obs_data: \r\n PHC2_TEMP_gx1v6_ann_avg.nc and SALT PHC2_SALT_gx1v6_ann_avg.nc\r\n- POP history file\r\nDirections:\r\n- Copy PHC2_TEMP_gx1v6_ann_avg.nc to obs.nc\r\n- ncks -A -v SALT PHC2_SALT_gx1v6_ann_avg.nc obs.nc\r\n- ncks -A -v TAREA,REGION_MASK a_pop_history_file.nc obs.nc\r\n- ncrename -O -d X,nlon -d Y,nlat -d depth,z_t obs.nc\r\n- ncatted -a _FillValue,TEMP,c,f,-99. obs.nc\r\n- ncatted -a _FillValue,SALT,c,f,-99. obs.nc\r\n- ncatted -a missing_value,TLAT,d,, obs.nc\r\n- ncatted -a missing_value,TLONG,d,, obs.nc\r\n- ncatted -a _FillValue,TLAT,d,, obs.nc\r\n- ncatted -a _FillValue,TLONG,d,, obs.nc\r\n- For regions in the table below: \r\n\to\tncwa -m REGION_MASK -T eq -M -w TAREA -a nlon,nlat -v TEMP,SALT obs.nc _hor_mean_obs.nc\r\n\to\t Table\r\n\t\tSou\tPac\tInd\tAtl\tLab\tGin\tArc\tHud\r\n\t\t1\t2\t3\t6\t8\t9\t10\t11\r\n\r\n- For Glo:\r\n\to\tncwa -m REGION_MASK -T gt -M 0 -w TAREA -a nlon,nlat -v TEMP,SALT obs.nc Glo_hor_mean_obs.nc\r\n\r\n\r\n======================================\r\nPyAverager Error Codes\r\n======================================\r\nerrors 1-19: average list errors\r\n1: Listed average is not in the know average list\r\n2: Average cannot be created with dependencies\r\n3: Average must list only one year\r\n4: Average must have a start year and an end year\r\n5: Date ranges are inconsistent and cannot run this average with dependencies\r\n\r\nerrors 20-39: input file problems\r\n20: Cannot find the file (triggered in three different checks points)\r\n21: Missing files to calculate DJF. You need either the previous December or the January and February from last year+1\r\n22: Time series files are split, but the dates between them are not contiguous (triggered in two different checks points)\r\n23: A date was found within two different time series files. Not sure which to use.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www2.cisl.ucar.edu/tdd/asap/parallel-python-tools-post-processing-climate-data", "keywords": "", "license": "Contributor License Agreement\r\n\r\nThis Contributor License Agreement (\"Agreement\") is a legal agreement between you (in your capacity as an individual and as an agent for your company, institution or other entity) (collectively, \"you\" or \"your\" or \"Licensee\") and the University Corporation for Atmospheric Research (\"UCAR\").\r\n\r\n License Grant to Technology. UCAR grants to Licensee a restricted, royalty-free, perpetual, nonexclusive, nontransferable, noncommercial license to copy, modify, enhance, improve and use the NCAR PyAverager code set for averaging climate output provided in source code format (\u201cTechnology\u201d) for research purposes and for collaborating with UCAR only; provided, however, that Licensee does not commercialize, sell, license, distribute, or transfer the Technology, or any work that contains the Technology. Licensee may freely use the data and results from the Technology. Licensee shall note in all publications of data or results that this Technology is provided by UCAR and the NCAR Computational and Information Systems Laboratory. Licensee must reproduce all copyright notices and other proprietary notices on any copies of the Technology, and Licensee shall not remove any copyright information appearing in or on the Technology files.\r\n Ownership of Technology. UCAR owns and retains all title, copyright, and other proprietary interests in the Technology, including any copies thereof. No ownership rights of any kind are transferred to you.\r\n Licensee Contributions. Licensee shall submit contributions to the Technology to UCAR through the collaboration tools provided by UCAR. \"Contribution\" shall mean any independent original work of authorship, including any enhancements, improvements, modifications, additions, bug fixes, patches, or upgrades to the Technology that is intentionally submitted by you to UCAR for inclusion in the Technology. You are the owner of your Contributions, but you acknowledge that UCAR retains ownership of the Technology.\r\n License Grant to Licensee Contributions. You hereby grant to UCAR, and to any recipients of the Technology distributed by UCAR, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license to reproduce, incorporate freely into the Technology, sublicense, display, and distribute your Contributions. You represent that you are legally entitled to grant the above license. If your employer(s) has rights to intellectual property that you create that includes your Contributions, you acknowledge that you are allowed to make Contributions on behalf of that employer.\r\n Disclaimer of Warranty/Noninfringement. THE TECHNOLOGY IS SUPPLIED \u201cAS IS\u201d WITHOUT WARRANTY OF ANY KIND. UCAR DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF NONINFRINGEMENT, ORIGINALITY, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE WITH REGARD TO THE TECHNOLOGY PROVIDED HEREUNDER. UCAR MAKES NO REPRESENTATIONS THAT THE USE, OPERATION, SALE, PERFORMANCE, MODIFICATION, REPRODUCTION, DISPLAY OF THE TECHNOLOGY WILL NOT INFRINGE UPON ANY PROPRIETARY RIGHTS OF ANY THIRD PARTY.\r\n Limitation of Liability. IN NO EVENT SHALL UCAR BE LIABLE TO LICENSEE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOST OR ANTICIPATED PROFITS OR REVENUE INCURRED BY LICENSEE OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF UCAR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES IN THE PERFORMANCE OF THIS LICENSE, OR RELATED TO THE TECHNOLOGY. LICENSEE ALSO ACKNOWLEDGES THAT ANY BREACH OF ITS OBLIGATIONS WITH RESPECT TO PROPRIETARY RIGHTS WILL CAUSE UCAR IRREPARABLE INJURY FOR WHICH THERE ARE INADEQUATE REMEDIES AT LAW. AS SUCH, UCAR SHALL BE ENTITLED TO EQUITABLE RELIEF IN ADDITION TO ALL OTHER REMEDIES AVAILABLE TO IT.\r\n High Risk Activities. The Technology is research-based, not fault-tolerant, and is not designed, manufactured or intended for use in any operational activities including activities or hazardous environments requiring fail-safe performance, such as in aircraft navigation or communication systems, air traffic control, weapons systems, nuclear power plants or critical 24/7 operations, in which the failure of the Technology could lead directly to death, personal injury, or severe physical or environmental damage (\u201cHigh Risk Activities\u201d). Accordingly, UCAR specifically disclaims any express or implied warranties of fitness for High Risk Activities. You agree that UCAR shall not be liable for any claims or damages arising from High Risk Activities.\r\n Controlling Law. This Agreement shall be governed by the laws of the State of Colorado and of the United States.", "maintainer": "", "maintainer_email": "", "name": "pyAverager", "package_url": "https://pypi.org/project/pyAverager/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyAverager/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://www2.cisl.ucar.edu/tdd/asap/parallel-python-tools-post-processing-climate-data" }, "release_url": "https://pypi.org/project/pyAverager/0.9.10/", "requires_dist": null, "requires_python": null, "summary": "Parallel Python Averager for Climate Data", "version": "0.9.10" }, "last_serial": 2291061, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "9ab84e947e79aa40a79e81e1554b2478", "sha256": "5122f3b4d76585e8df0211a23edc3e4e773a28f4beee5c3685e2da2813ca8d51" }, "downloads": -1, "filename": "pyAverager-0.9.0.tar.gz", "has_sig": false, "md5_digest": "9ab84e947e79aa40a79e81e1554b2478", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32508, "upload_time": "2015-05-19T14:57:54", "url": "https://files.pythonhosted.org/packages/2e/bb/fde62a71de9507197d859aa458ee75b23c86ff3fd819cbc5758e4f224cca/pyAverager-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "4e034b11331d65860cf5062645c4bc27", "sha256": "ba392c31900affa93292714bb7cf5495250193ecf3bd05abc0d44f6584d22e1f" }, "downloads": -1, "filename": "PyAverager-0.9.1.tar.gz", "has_sig": false, "md5_digest": "4e034b11331d65860cf5062645c4bc27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33172, "upload_time": "2015-05-21T15:01:59", "url": "https://files.pythonhosted.org/packages/98/80/1495427cbf9b3822825984a4c22205721e486c4ba5abb32fff8b9a838bcc/PyAverager-0.9.1.tar.gz" } ], "0.9.10": [ { "comment_text": "", "digests": { "md5": "01e5a40d637151c782cf0cd4ce1950c1", "sha256": "25ef03a5b806186ee4525f9478d034f65a783692c47d004d92e1b38fd8ae70c5" }, "downloads": -1, "filename": "PyAverager-0.9.10.tar.gz", "has_sig": false, "md5_digest": "01e5a40d637151c782cf0cd4ce1950c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37516, "upload_time": "2016-08-19T15:33:14", "url": "https://files.pythonhosted.org/packages/e7/c5/9e4fca6ece1fa42e2260fa91806018a55bbd55d8cab57e0d8b6a386eaa15/PyAverager-0.9.10.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "0384b0561dc9e01a839f01f06173dc1d", "sha256": "de2312ab3a6c9be7f27db3ef58bbdb26bceba28d4d03eea67b5d53b7b5c0f554" }, "downloads": -1, "filename": "PyAverager-0.9.3.tar.gz", "has_sig": false, "md5_digest": "0384b0561dc9e01a839f01f06173dc1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36273, "upload_time": "2015-10-20T16:57:20", "url": "https://files.pythonhosted.org/packages/2d/ca/f0d3c550e6bedfd86d1de6c068142f91cd9a43e172b1a4838f32b429f963/PyAverager-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "05ccdd65dc13b98e4ad4ae09a05811e1", "sha256": "ddf6811cb376ae035c31b3214e0ac3822fee5d325dcb73a6fd83c5169ff23669" }, "downloads": -1, "filename": "PyAverager-0.9.4.tar.gz", "has_sig": false, "md5_digest": "05ccdd65dc13b98e4ad4ae09a05811e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36358, "upload_time": "2016-01-22T16:26:33", "url": "https://files.pythonhosted.org/packages/55/50/875e4a971c9cc8bca61f8077826ea925d0541fa92ba7ee08cd06e41bc1f7/PyAverager-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "559f8f9a165a53b3c30d0070fe41c869", "sha256": "6d3b0b665fc7865797a5175164d9565b22341a4a3e1f787b07c0b786e9fa0f81" }, "downloads": -1, "filename": "PyAverager-0.9.5.tar.gz", "has_sig": false, "md5_digest": "559f8f9a165a53b3c30d0070fe41c869", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36468, "upload_time": "2016-03-14T21:33:56", "url": "https://files.pythonhosted.org/packages/c1/31/05cc5d9acf0a27fdde5719df1577788fddd052e98d85f322845c3b4156d3/PyAverager-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "edcf9e24713d930393a48eb4f3c9caf2", "sha256": "22917169e25d841d97d7c73a227af83b4d482020476b77c22d8143bf2759ddec" }, "downloads": -1, "filename": "PyAverager-0.9.6.tar.gz", "has_sig": false, "md5_digest": "edcf9e24713d930393a48eb4f3c9caf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36624, "upload_time": "2016-04-29T19:53:35", "url": "https://files.pythonhosted.org/packages/21/76/ae6a74053122486e0b7a5b96327a72f65f97139c79f44fed0d75d581ccd8/PyAverager-0.9.6.tar.gz" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "9775aa89a013f1a5bf5bfa96269e07e5", "sha256": "47214fec4a7abbdf9f1a2b8aa1ea2365a3368cd3c42d5701d2f3c8cab15b3b55" }, "downloads": -1, "filename": "PyAverager-0.9.7.tar.gz", "has_sig": false, "md5_digest": "9775aa89a013f1a5bf5bfa96269e07e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36649, "upload_time": "2016-07-15T19:42:40", "url": "https://files.pythonhosted.org/packages/69/d9/ace58ae8823fdf33f33c21d8d8616816cf331d5fae40f5c471784ee9e9c9/PyAverager-0.9.7.tar.gz" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "b46d4622e564ea554b2e9a7906cad0f4", "sha256": "08949273dd957c96df63b8e00a28590fd3317b2e022097978157435379e77b6e" }, "downloads": -1, "filename": "PyAverager-0.9.8.tar.gz", "has_sig": false, "md5_digest": "b46d4622e564ea554b2e9a7906cad0f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36640, "upload_time": "2016-07-15T19:59:26", "url": "https://files.pythonhosted.org/packages/f9/a0/858f257f298200ddb656d90a4b59acfedfecd0715d8c6ad8aca6cbce3a38/PyAverager-0.9.8.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "8033f375edc7118dcbc877ba64fa515a", "sha256": "3c4b446e612e432962506606fce82588817cad64a1b34b0a885f37b6a62a985f" }, "downloads": -1, "filename": "PyAverager-0.9.9.tar.gz", "has_sig": false, "md5_digest": "8033f375edc7118dcbc877ba64fa515a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37373, "upload_time": "2016-08-08T20:44:28", "url": "https://files.pythonhosted.org/packages/15/07/c4bceaafd220e9e628cf42af0dced3ef8c854df82f1642bba9fdf2f1b6f5/PyAverager-0.9.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "01e5a40d637151c782cf0cd4ce1950c1", "sha256": "25ef03a5b806186ee4525f9478d034f65a783692c47d004d92e1b38fd8ae70c5" }, "downloads": -1, "filename": "PyAverager-0.9.10.tar.gz", "has_sig": false, "md5_digest": "01e5a40d637151c782cf0cd4ce1950c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37516, "upload_time": "2016-08-19T15:33:14", "url": "https://files.pythonhosted.org/packages/e7/c5/9e4fca6ece1fa42e2260fa91806018a55bbd55d8cab57e0d8b6a386eaa15/PyAverager-0.9.10.tar.gz" } ] }