{ "info": { "author": "Fred Stober", "author_email": "fred.stober@gmx.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Build Tools" ], "description": "| |PyPI Version| |Documentation| |Build Status| |Coverage| |Landscape| |Gitter|\n\npyrate\n======\n\n**pyrate** is a small python based build file generator targeting `ninja(s)`_.\n\nIt allows to describe the build process of small projects in a very simple way\nusing a python based configuration file.\nThis description is then turned into ninja build files, that enable a very\nquick turnaround of project builds.\n\nQuick HOWTO\n-----------\n\nThe following presents the necessary steps to quickly test the waters with this tool (assuming\nninja is already installed). These commands will install **pyrate**, generate the ninja\nbuild file, build and execute a small executable:\n\n.. code:: sh\n\n pip install pyrate-build\n echo -e '#include \\nint main() { printf(\"Ahoy World!\"); return 0; }' > test.cpp\n echo -e \"executable('test', 'test.cpp')\" > build.py\n pyrate\n ninja\n ./test\n\nMore examples can be found in the `github`_ repository.\n\nInstallation\n------------\n\n**pyrate** is very easy to deploy - there are no particular installation steps to use it\nonce the single script ``pyrate.py`` is available somewhere.\nIt can even board the project directory of your project and simply get called from there.\nThe only dependency to generate the ninja build files is having a working python installation.\n**pyrate** should work out of the box with all python versions between 2.4 and 3.4.\nTo actually build the project, ninja has to be installed as well.\n\nThe latest release version of **pyrate** can be installed from the Python Package Index with:\n\n.. code:: sh\n\n pip install pyrate-build\n\nThe latest development version can be retrieved from the github repository:\n\n.. code:: sh\n\n git clone https://github.com/pyrate-build/pyrate-build\n\nUsage\n-----\n\nThe quickest way to execute **pyrate** is:\n\n.. code:: sh\n\n pyrate\n\nWithout any parameters, **pyrate** will use the build configuration script (*pyrate script*) named ``build.py``\nand create a ninja build file called ``build.ninja``.\nIf another pyrate script should be used, this can be specified as a positional argument.\nThe name of the created ninja build file can be customized using the option ``-o`` or ``--output``.\nThe quick invocation shown above is therefore equivalent to the following invocation:\n\n.. code:: sh\n\n pyrate --output mybuild.ninja mybuild.py\n\nWhen the script is started, it first changes the current directory to the directory\ncontaining the build configuration script, so all path names are relative to it.\n\n.. code:: sh\n\n pyrate path/to/mybuild.py\n\nwill therefore create the ninja build file path/to/build.ninja\n\nIf **pyrate** is placed in a directory listed in the PATH environment variable (as automatically\ndone by ``pip install pyrate-build``), the build configure script can be made executable to\ninvoke **pyrate** automatically by starting the build config script with:\n\n.. code:: python\n\n #!/usr/bin/env pyrate\n\n*There is some experimental support for the generation of plain makefiles,\nwhich can be switched on with* ``-M`` *or* ``--makefile``.\n\nBuild File Configuration Syntax\n-------------------------------\n\nThe build configuration for **pyrate** is written in python - so the full power\nof python can be used to construct and describe the build process.\nSeveral classes, functions and variables are available to ease and customize\nthe configuration of the build process.\n\nSpecifying build input\n~~~~~~~~~~~~~~~~~~~~~~\n\nIn general, a build input list that can be used to construct a build target takes the form:\n\n- ``[, , ...]``\n\nEach item can be one of the following:\n\n- a *string* is interpreted as a file name that is processed according to the rules specified by the packages in the ``tool`` dictionary\n- a *build target* as returned by the functions described in `Defining build targets`_ or explicitly defined\n- an *external dependency* as returned by the functions described in `External dependencies`_ or explicitly defined\n- or any other kind of ``BuildSource`` (explained later)\n\nInstead of a list, it is also possible to specify a space separated string of file names.\nSuch a string is automatically split, so the following two build input lists behave identically:\n\n- ``\" ...\"``\n- ``['', '', ...]``\n\nBesides specifying file names by hand, there are many ways to get a list of files.\nCommon methods include calling the python function ``os.listdir`` or using the helper\nfunction ``match`` provided by **pyrate**:\n\n- ``match(selector, dir_name = '.', recurse = False)``\n\nThis functions allows to select files from a directory using a string consisting\nof black / white listing path name patterns.\nThe selector ``'*.cpp -test*.cpp test3.cpp *.h'`` for example selects all files ending with\n\u2018.h\u2019 and \u2018.cpp\u2019, with the exception of those \u2018.cpp\u2019 files that start with \u2018test\u2019 and are not\ncalled \u2018test3.cpp\u2019.\n\n- ``match_lib(dn = '.', recurse = False, lib_types = ['shared', 'static'])``\n\nThis functions allows to add all library files from a directory to the build process. By default,\nboth shared and static libraries will be picked up, but this can be changed with the ``lib_types``\noption.\n\nDefining build targets\n~~~~~~~~~~~~~~~~~~~~~~\n\nThere are four global helper functions to define object files, executables and libraries based\non a list of build inputs (which can be files, other targets or externals - as shown in `Specifying build input`_):\n\n- ``executable(name, input_list, compiler_opts = None, linker_opts = None)``\n- ``shared_library(name, input_list = None, compiler_opts = None, linker_opts = None)``\n- ``static_library(name, input_list = None, compiler_opts = None, linker_opts = None)``\n- ``object_file(name, input_list, compiler_opts = None)``\n\nEach function returns a build target object, that can be used as input / dependency of another function.\nIf multiple executables / libraries or object files with the same name but different inputs / options\nare defined, **pyrate** will ensure that the output will have a unique name\n(by appending a hash based suffix as needed). More details about this is available in `Target Collision Avoidance`_.\n\nIf no input_list is given to ``shared_library`` or ``static_library``, a BuildSource will be created,\nthat represents the specified library. Existing libraries can quickly be defined as dependencies this way,\nbut the name has to be a path to an existing file!\n\nThese functions exist as global functions and as member functions of a so-called build context,\nthat describes how these functions are processed. The global functions are just executing\nwithin the default build context.\n\nBy default, all build targets that are defined by the above functions (or direct API calls) are built.\nIn order to select only certain default targets, the global variable ``default_targets`` can be used:\n\n- ``default_targets = [,...]`` (list of targets), ```` (single target) or ``None`` (all targets are built)\n\nExternal dependencies\n~~~~~~~~~~~~~~~~~~~~~\n\nThe build environment / dependencies on external packages can be expressed using the\nfollowing functions / variables:\n\n- ``find_external(name, ...)``\n- ``use_external(name, ...)``\n\nThe function ``find_external`` searches for some external dependency (built-in, pkg-config package\nor self-defined) with the given name and returns either None or a representation of the dependency.\n``use_external`` will first call ``find_external`` and add the external to the implicit input list\nof the context if it exists.\nThe function takes additional positional and keyword arguments that depend on the external package.\nA common argument for this function is a version selector, that is supplied through a global variable:\n\n- ``version``\n\nThe comparison between this variable and a version specifier (eg. ``version >= 4.1``)\nwill return a function that can be used to check the expression and is used by the external package finder.\nA version specifier can be a string (``'0.1.2'``) or tuple (``(0, 1, 2)``) with an arbitrary number\nof delimeters, or a floating point number (``1.2``).\nThis allows for example to write ``find_external('clang', version >= 3.5)`` to discover a clang installation with version 3.5 or later.\n\nSince ``find_external`` also integrates with ``pkg-config``, a large number of external packages is\navailable - in addition to a handful of builtin external packages with special implementation features.\nIt is also possible to add new packages that are recognized.\nA list of the builtin packages is presented in `Externals`_.\n\nIn order to simplify the creation of external packages that already provide a build configuration tool\nto query version, linker or compiler options, **pyrate** provides the function:\n\n- ``create_external(name, build_helper, ...)``\n\nIt requires the user to define a name for the external package and to supply the build configuration tool.\nThe values of additional parameters are interpreted as command line options for the build configuration tool.\nThe name of these additional parameters specify the name of the\nrule that gets supplied with the flags given by the output of the build configuration tool.\nHowever there are four parameters that have a special meaning:\n\n- ``version_query`` - similar to the other parameters, the value of this parameter is used as build\n configuration tool option to determine the current version of the external package.\n As a consequence of providing this option, the resulting external package will support the parameter ``version``.\n- ``version_parser`` - this parameter allows to supply a function that parses the version string\n provided by the build configuration tool and is only used if ``version_query`` is given.\n- ``version`` - specifies required version (eg. ``version = version >= 11.5``) and can only be used if\n ``version_query`` is given\n- ``link = opts`` is equivalent to specifying ``link_shared = opts``, ``link_static = opts`` and\n ``link_exe = opts``\n\nThe following example recreates the builtin external package for wxWidgets and returns a representation\nof the external package if a matching version is found:\n\n.. code:: python\n\n my_wxwidgets = create_external('wxwidgets', build_helper = 'wx-config',\n version_query = '--version', link = '--libs', compile_cpp = '--cxxflags',\n version = version >= 2.8)\n\nConfiguration of the build environment\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIt is possible to query the current version of **pyrate** via the variable:\n\n- ``pyrate_version``\n\nthis allows to ensure a compatible version of **pyrate** with something along the lines of:\n\n.. code:: python\n\n assert(pyrate_version > '0.1.8')\n\nA build context allows for example to define implicit dependencies that are automatically\nincluded in all generated object files, executables or libraries (via ``implicit_*`` options).\nIt is also possible to set base directories for the output generated by the build (via ``basepath_*`` options).\n\nThe default context used by the global functions presented in `Defining build targets`_\ncan be set or accessed using the variable:\n\n- ``default_context = Context(...)``\n\nAn instance of such a build context is created with:\n\n- ``Context(...)`` - the most important parameters are:\n\n * ``implicit_input``, ``implicit_object_input``, ``implicit_static_library_input``,\n ``implicit_shared_library_input`` and ``implicit_executable_input``\n * ``basepath``, ``basepath_object_file``, ``basepath_static_library``, ``basepath_shared_libray``,\n ``basepath_executable``\n\nThese parameters can also be changed on an existing context instance:\n\n.. code:: python\n\n default_context.basepath = 'build'\n\nA context also allows to access some additional settings - which are described in\nmore detail below. These settings are available as member functions of a context or\nas global variables (that are provided by the default_context):\n\n- ``tools``\n This is a dictionary that contains links to external packages that provide the basic rules\n and parameters that are used to process sources and generate targets.\n This dictionary can be modified, but should not be overwritten.\n\n- ``toolchain``\n This is a list of ``Toolchain`` instances that is used to populate the tools dictionary\n in reverse order. There are currently two toolchains available: ``gcc`` and ``llvm``\n They can be accessed with the follwing two methods:\n\n- ``find_toolchain(name, ...)``\n- ``use_toolchain(name, ...)``\n These methods work in the same way as the ``find_external`` and ``use_external`` methods.\n The available toolchains and their options are presented in `Toolchains`_.\n The following example would try to set the clang / clang++ compiler and llvm linker in the tool dictionary\n\n.. code:: python\n\n use_toolchain('llvm', version >= 3.7, cpp_std = 'c++11', cpp_opts = '-Wall')\n # is the same as\n llvm = find_toolchain('llvm', version >= 3.7, cpp_std = 'c++11', cpp_opts = '-Wall')\n if llvm:\n toolchain.append(llvm)\n\nTarget Collision Avoidance\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAs explained in `Defining build targets`_, **pyrate** will always ensure that targets with different inputs / options but\nsame name will generate different output files (by appending a hash based suffix as needed).\nHowever it is possible to switch off the renaming of colliding targets for a **unique** target.\nBeware: Having two different targets that switch off the renaming with the option\n``no_rename = True`` will abort the build file generation.\nThe following build configuration file:\n\n.. code:: python\n\n ex1 = executable('example.bin', 'test.cpp', compiler_opts = '-O1')\n ex2 = executable('example.bin', 'test.cpp', compiler_opts = '-O2')\n ex3 = executable('example.bin', 'test.cpp', compiler_opts = '-O3')\n ex4 = executable('example.bin', 'test.cpp', compiler_opts = '-O2', no_rename = True)\n print('hash(ex1) = %s' % ex1.get_hash())\n print('hash(ex2) = %s' % ex2.get_hash())\n print('hash(ex3) = %s' % ex3.get_hash())\n print('hash(ex4) = %s' % ex4.get_hash())\n\nwill result (for example in an linux environment) in the generation of **three** object files named\n``test_.o``, ``test_.o``, ``test_.o``, since there are only three different\nsettings used during the compilation of ``test.cpp``.\nDuring the linking step, these object files will generate **three** binaries named\n``example.bin``, ``example_.bin``, ``example_.bin``.\nWhere ``example.bin`` was compiled with the compiler option '-O2'. To identify which\ntarget belongs to which hash, the ``.get_hash()`` function can be used.\n\nHowever it is **strongly** recommended to always ensure collision free names for executables\nand shared / static libraries.\n\nBuildSource\n~~~~~~~~~~~\n\nThe build source is the fundamental building block of pyrate. It is modeled by a class ``BuildSource``,\nwhich can be constructed with the following code:\n\n.. code:: python\n\n BuildSource(on_use_inputs = None, on_use_deps = None, on_use_variables = None)\n\nThe three arguments ``on_use_inputs``, ``on_use_deps`` and ``on_use_variables`` specify how a rule belonging\nto a build target should react to having the BuildSource as input. Each argument can be a dictionary, where\nthe key specifies the rule (a rule name string or ``None`` to match any rule) and the value specifies for\n\n- ``on_use_inputs`` a list of objects with ``name`` attribute that is given as input arguments for the target\n- ``on_use_deps`` a list of objects with ``name`` attribute that is specified as dependency of the target\n- ``on_use_variables`` a dictionary with variables for the target. Probably the most important variable\n is ``opts``, which is used to supply options to rules\n\nExamples for different build sources are:\n\n- any string that is given as build input is converted into an ``InputFile` - a ``BuildSource`` that\n forwards the specified file name to any rules (using ``on_use_inputs``)\n- ``External`` - is a type of ``BuildSource`` that specifies ``on_use_variables`` among other things\n- all targets are BuildSources as well - so the result of a ``shared_library`` call can be used to\n link another target against this libray\n- ``macro(expr)`` - creates a BuildSource that allows to define C/C++ preprocessor macros.\n\nInstalling Targets\n~~~~~~~~~~~~~~~~~~\n\n- ``install(target_list, destination = None)``\n This function will create install targets in the build file to install the given target / list of targets.\n In addition to the install targets for the specific entries in the ``target_list``, an *install* target \n will be created that will contain all generated install targets.\n The parameter ``destination`` allows to specify the installation path - if it is not given, the path\n is taken from the ``platform.install_paths`` dictionary with the appropriate object target type.\n\nSubdirectories\n~~~~~~~~~~~~~~\n\n- ``include(build_file_list, inherit = False, target_name = None)``\n This function will read in the given build config file(s). If a directory is given\n instead of a build config file, **pyrate** will enter the given directory and use the file ``build.py``\n if available. The parameter ``inherit`` allows to inherit ``basepath_*`` and ``implicit_*`` settings\n from the current context. The parameter ``target_name`` allows to specify the name of the alias that\n allows to build all included targets. By default, this target name is derived from the path given in\n ``build_file_list``.\n *Current implementation notice - the targets from the included file will be\n adapted for proper paths and included in the build output of the main file. The goal is to allow\n very loose coupling between the main project and the subsystem projects so each subsystem can\n be independently processed without any changes.*\n\n- ``find_internal(name)``\n This function allows to retrieve build targets that were created by ``executable``, ``shared_library``,\n ``static_library`` and ``object_file``. It will match against the user specified name, the installation\n name (with platform specific extensions) and the build target name\n (derived from the specified ``basepath`` and ``basepath_...`` and the installation name).\n This is in particular useful when trying to specify dependencies one objects included from another file.\n\nExternals\n---------\n\nCurrently the following builtin externals are supported (listed with all possible ``find_external`` arguments):\n\n- ``gcc`` - GNU C compiler\n- ``clang`` - LLVM C compiler\n- ``g++``, ``gpp`` - GNU C++ compiler\n- ``clang++``, ``clangpp`` - LLVM C++ compiler\n- ``gfortran`` - GNU Fortran compiler\n\n * ``version`` - specifies required version (eg. ``version >= 5.2``)\n * ``std`` - language standard version (eg. ``'c++14'`` or ``'latest'``).\n A property with the same name allows to also set this value on an existing external (eg. ``tool['c'].std = 'c90'``).\n * ``compiler`` - name of the executable\n * ``compiler_opts`` - options that are used during the compilation stage\n\n- ``swig`` - The swig package also provides the member function ``wrapper`` to describe the generation of automated interface code\n\n * ``version`` - specifies required version (eg. ``version > '3.0.2'``)\n * ``wrapper(target_language, library_name, interface_filename, libs = [...], context = None, ...)`` -\n ``context`` allows to specify a different build context, additional keyword parameters are forwarded to the shared_library\n invokation that creates the wrapper library\n\n- ``link-base`` - basic linker tools (using ``ld`` and ``ar``)\n- ``link-gcc`` - calling linker via gcc (using ``gcc`` and ``gcc-ar``)\n- ``link-llvm`` - calling linker via llvm (using ``clang`` and ``llvm-ar``)\n\n * ``link_static`` - path to the static linker\n * ``link_static_opts`` - options for the static linker\n * ``link_shared`` - path to the shared linker\n * ``link_shared_opts`` - options for the shared linker\n * ``link_exe`` - path to the executable linker\n * ``link_exe_opts`` - options for the executable linker\n\n- ``pthread`` - posix thread library\n- ``stdlibcpp`` - GNU C++ library\n- ``libcpp`` - LLVM C++ library\n\n- ``root`` - Library for large scale data analysis. This external also provides a member function `dictionary` to create ROOT I/O dictionary files.\n\n * ``version`` - specifies required version (eg. ``version > '3.0.2'``)\n * ``dictionary(name, header_list = None, include_list = None, opts = None, context = None, ...)`` -\n ``name`` is the name of the generated c++ dictionary file, ``header_list`` is the list of header files\n with the C++ objects for which the serialization code will be generated, ``include_list`` is a list\n of include directories that are needed by the dictionary generator to parse the given header files,\n ``opts`` are additional options given to rootcint,\n ``context`` allows to specify a different build context, additional keyword parameters are forwarded to the shared_library\n invokation that creates the wrapper library\n\nThe following list contains all builtin externals with a single ``find_external`` parameter ``version``,\nthat specifies the required version (eg. ``version >= 2.6``):\n\n- ``fltk`` - FLTK GUI Library\n- ``llvm`` - LLVM compiler infrastructure libraries\n- ``odbc`` - Open Database Connectivity middleware\n- ``wx`` - wxWidgets GUI Toolkit\n\nMany more externals are available through the integration with ``pkg-config``. The full list\nof available packages on a system can be queried with:\n\n.. code:: sh\n\n pkg-config --list-all\n\nAll packages listed in that overview can be accessed with the ``find_external`` function.\n\nToolchains\n----------\n\nThe following toolchains are currently available:\n\n- ``gcc`` - the GNU compiler collection\n This toolchain will activate the ``gcc`` C compiler, ``g++`` C++ compiler and the\n ``gfortran`` Fortran compiler. Linking will be done with ``link-gcc`` as driver.\n\n * ``version`` - requested version\n * ``c_std``, ``c_opts`` - control the std and flags of the ``gcc`` external\n * ``cpp_std``, ``cpp_opts`` - control the std and flags of the ``gpp`` external\n * ``fortran_std``, ``fortran_opts`` - control the std and flags of the ``gfortran`` external\n * ``link_shared_opt``, ``link_exe_opt`` - control the linker settings\n\n- ``llvm`` - the LLVM Compiler Infrastructure\n This toolchain will activate the ``clang`` C compiler and the ``clang++`` C++ compiler.\n Linking will be done with the ``link-llvm`` package.\n\n * ``version`` - requested version\n * ``c_std``, ``c_opts`` - control the std and flags of the ``clang`` external\n * ``cpp_std``, ``cpp_opts`` - control the std and flags of the ``clang++`` external\n * ``link_shared_opt``, ``link_exe_opt`` - control the linker settings\n\nExample\n-------\n\nThe basic **pyrate** build configuration file for a simple C++ project with a single source file\nproducing a single executable looks like this:\n\n.. code:: python\n\n executable('test', ['test.cpp'])\n\nA more complicated example is presented in the following code fragment. It demonstrates how to\n\n- change the default compiler toolchain to llvm (clang / clang++),\n- define a native static and dynamic library from a set of files selected by wildcards,\n- generate several executables accessing to the shared library and\n- generate a wrapper library to access the C++ library from python (if swig is available).\n\n.. code:: python\n\n use_toolchain('llvm', version >= 3.7, cpp_std = 'c++11', cpp_opts = '-Wall')\n\n lib_files = match('*.cpp -test* -mylib.* -py_foo.cpp')\n static_library('libFoo', lib_files, compiler_opts = '-O3')\n lib_reference = shared_library('libFoo', lib_files)\n\n python = find_external('python', version > 2)\n swig = find_external('swig', version >= 2)\n\n if swig and python:\n swig.wrapper('python', 'mylib', 'foo.i', libs = [lib_reference])\n\n for fn in match('test*.cpp'):\n executable(fn.replace('.cpp', '.bin'), [fn, lib_reference, find_external('pthread')])\n\nMany more examples with an increasing level of complexity are available in the `github`_ repository.\n\nChangelog\n---------\n\n- **0.2.0** changes\n\n * renamed external packages: ``clang`` to ``clang++``, ``gcc`` to ``g++``\n * added external packages: ``clang``, ``gcc``, ``libstdc++``, ``libc++``, ``gfortran``,\n ``link-base``, ``link-gcc``, ``link-llvm``\n * renamed ``compiler`` variable to ``tools``, changed to lower case slot names, using ``cpp`` instead of ``C++``\n * added ``toolchain`` and ``find_toolchain`` to set multiple tools at once\n\n\n.. _ninja(s): https://github.com/ninja-build/ninja\n\n.. _github: https://github.com/pyrate-build/pyrate-build/tree/master/examples\n\n.. |PyPI Version| image:: https://badge.fury.io/py/pyrate-build.svg\n :target: https://badge.fury.io/py/pyrate-build\n :alt: Latest PyPI version\n\n.. |Documentation| image:: https://readthedocs.org/projects/pyrate-build/badge/?version=stable\n :target: http://pyrate-build.readthedocs.org/en/stable/?badge=stable\n :alt: Documentation Status\n\n.. |Build Status| image:: https://travis-ci.org/pyrate-build/pyrate-build.svg?branch=master\n :target: https://travis-ci.org/pyrate-build/pyrate-build\n :alt: Build Status\n\n.. |Coverage| image:: https://codecov.io/github/pyrate-build/pyrate-build/coverage.svg?branch=master\n :target: https://codecov.io/github/pyrate-build/pyrate-build?branch=master\n\n.. |Gitter| image:: https://badges.gitter.im/pyrate-build/pyrate-build.svg\n :alt: Join the chat at https://gitter.im/pyrate-build/pyrate-build\n :target: https://gitter.im/pyrate-build/pyrate-build?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n\n.. |Landscape| image:: https://landscape.io/github/pyrate-build/pyrate-build/master/landscape.svg?style=flat\n :target: https://landscape.io/github/pyrate-build/pyrate-build/master\n :alt: Code Health", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/pyrate-build/pyrate-build/tarball/0.2.10", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pyrate-build/pyrate-build", "keywords": "ninja build development", "license": "License :: OSI Approved :: Apache Software License", "maintainer": null, "maintainer_email": null, "name": "pyrate-build", "package_url": "https://pypi.org/project/pyrate-build/", "platform": "Operating System :: OS Independent", "project_url": "https://pypi.org/project/pyrate-build/", "project_urls": { "Download": "https://github.com/pyrate-build/pyrate-build/tarball/0.2.10", "Homepage": "https://github.com/pyrate-build/pyrate-build" }, "release_url": "https://pypi.org/project/pyrate-build/0.2.10/", "requires_dist": null, "requires_python": null, "summary": "A small python based build file generator targeting ninja", "version": "0.2.10" }, "last_serial": 2532898, "releases": { "0.1.10": [ { "comment_text": "", "digests": { "md5": "b9ad4d5deb8c8c469eb299827fa89409", "sha256": "758f9751889ce00004e218e10a08e7656d9c87ca3731fb4d66bd468926feaada" }, "downloads": -1, "filename": "pyrate_build-0.1.10-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b9ad4d5deb8c8c469eb299827fa89409", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20795, "upload_time": "2016-01-17T15:47:01", "url": "https://files.pythonhosted.org/packages/98/39/860415672c0091b7129becc27db98d972a32ffb41a423ea273fe8191ce41/pyrate_build-0.1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "536979d7f6f60a858643e46dc40e503e", "sha256": "89ca88ed2ad64db00a69e46e1930d82559c1aaca9242ac15d488bdb6fd03e7df" }, "downloads": -1, "filename": "pyrate-build-0.1.10.tar.gz", "has_sig": true, "md5_digest": "536979d7f6f60a858643e46dc40e503e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19390, "upload_time": "2016-01-17T15:46:30", "url": "https://files.pythonhosted.org/packages/b0/64/5e0164ab0da5f1a922a0530db3229b9f7db257ab1f0cb58273796803fe4d/pyrate-build-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "8126490567b48c0abe22a670ae6ae8cb", "sha256": "b78590b30f64dc5abc682b879246c096a4b82101b13af800b1516db0b1d24a69" }, "downloads": -1, "filename": "pyrate_build-0.1.11-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8126490567b48c0abe22a670ae6ae8cb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 21098, "upload_time": "2016-01-18T02:41:01", "url": "https://files.pythonhosted.org/packages/75/61/6b13f75ac1f8a23f204bc3532799615ab182216df33c00e7db3087cb1d29/pyrate_build-0.1.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ecbfc9b3622504e1f0c3cb972f79b22c", "sha256": "1df13c14cd02e12f40997d7bef53ff0bd5ba9bf3164b5ca151017da457fc5af8" }, "downloads": -1, "filename": "pyrate-build-0.1.11.tar.gz", "has_sig": true, "md5_digest": "ecbfc9b3622504e1f0c3cb972f79b22c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19700, "upload_time": "2016-01-18T02:41:24", "url": "https://files.pythonhosted.org/packages/da/0c/186468d37f1012e68956bf3ee5da22021c4972e8a4401a16eb8d49ef6a91/pyrate-build-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "72162cd436124fe50e80e8f2d1b39d12", "sha256": "fe68d28ed9106448160ba45c2eca3f209396658cd700aed4e40b566f1d019710" }, "downloads": -1, "filename": "pyrate_build-0.1.12-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "72162cd436124fe50e80e8f2d1b39d12", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22864, "upload_time": "2016-01-18T17:06:55", "url": "https://files.pythonhosted.org/packages/c5/07/dc2dfa23ede145fd0c883e41f436c7e86eadca417c4ee29941c950542b91/pyrate_build-0.1.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "71677db774d9e0d90a464a88088f43bc", "sha256": "7581dc6fa5ea12e31f0131086a529a25a3411e0dd58105ab785d581a389271f9" }, "downloads": -1, "filename": "pyrate-build-0.1.12.tar.gz", "has_sig": true, "md5_digest": "71677db774d9e0d90a464a88088f43bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21536, "upload_time": "2016-01-18T17:06:29", "url": "https://files.pythonhosted.org/packages/8b/48/d73f6cfedd5b2f0c357d738248c6f4fabdff93a8e55ba5c114ab93044644/pyrate-build-0.1.12.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "baae8007996b5d1d3897fe1bea8b43a1", "sha256": "e42d6582515b5f909f9d67f2fd9c4176841de7da09fd2a31e5d2c47df3bfb444" }, "downloads": -1, "filename": "pyrate-build-0.1.5.tar.gz", "has_sig": true, "md5_digest": "baae8007996b5d1d3897fe1bea8b43a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12785, "upload_time": "2016-01-14T12:23:56", "url": "https://files.pythonhosted.org/packages/85/99/ea0e93af43c907fa5573f4e1bc1923fff14e3b0aea539950462449df8d46/pyrate-build-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "662284f513abf5481322ba01aa47a9fa", "sha256": "b7958d08c075f10f9a28ddcfca3bed45c0d43f73702c1988f40fde2e2156d7f5" }, "downloads": -1, "filename": "pyrate-build-0.1.6.tar.gz", "has_sig": true, "md5_digest": "662284f513abf5481322ba01aa47a9fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13737, "upload_time": "2016-01-15T11:03:32", "url": "https://files.pythonhosted.org/packages/12/0b/1dcd82578b6682303827e4e3de29d6916777adc460002254bf3ac2ad74ca/pyrate-build-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "83aef9f064db1a044cfde51b7f068853", "sha256": "f677957285a6ecfd545ed3f75f1aae7d81b82558e98320e419afc36b460b3f55" }, "downloads": -1, "filename": "pyrate_build-0.1.7-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "83aef9f064db1a044cfde51b7f068853", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16770, "upload_time": "2016-01-16T02:32:25", "url": "https://files.pythonhosted.org/packages/1b/e0/4790ef324707b90725cea3eedb6037e4be04741ad8a55b75bcdbb96098cb/pyrate_build-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "258c7eb2ef4dc34f5d9920d68a2a2eb3", "sha256": "151ee396b96d4d3af2aa9dc909e99dd66180fe87b9696c59debf7a60f18fad9d" }, "downloads": -1, "filename": "pyrate-build-0.1.7.tar.gz", "has_sig": true, "md5_digest": "258c7eb2ef4dc34f5d9920d68a2a2eb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15330, "upload_time": "2016-01-16T02:32:46", "url": "https://files.pythonhosted.org/packages/ea/9f/ba0c6c1a48f193e77b70a155b7b3e15f092bf7a2a955e0eebe47d832f564/pyrate-build-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "34cbe7035acf77de757f0b460bbdc716", "sha256": "4d00a596eb4c9c3285b0cd3fa6459c72dc02d26dc619f0bf6d7d1a5088f435d5" }, "downloads": -1, "filename": "pyrate_build-0.1.8-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "34cbe7035acf77de757f0b460bbdc716", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19366, "upload_time": "2016-01-17T01:54:13", "url": "https://files.pythonhosted.org/packages/4f/06/4026a4e8cbfd53ad224ee840b36a9252422cd754b7ba98091aad5db0c346/pyrate_build-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a22fb296b07e5feea5b70433aeb22d04", "sha256": "45de6b614e089713a4339d9eb7fa83bf5b71131357b5597df13ad9ded74ae412" }, "downloads": -1, "filename": "pyrate-build-0.1.8.tar.gz", "has_sig": true, "md5_digest": "a22fb296b07e5feea5b70433aeb22d04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17882, "upload_time": "2016-01-17T01:53:55", "url": "https://files.pythonhosted.org/packages/c8/61/92db649781e042847d616ae745074ec00a6a8f77d2989d03bdbb2e56b1cf/pyrate-build-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "86f34131036986264649921cd0f3bafd", "sha256": "3c69babd5b236c19912e1e115b0d3a0ff0b6e1a8682446e53012d6e5f0fc47b1" }, "downloads": -1, "filename": "pyrate_build-0.1.9-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "86f34131036986264649921cd0f3bafd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19592, "upload_time": "2016-01-17T14:17:03", "url": "https://files.pythonhosted.org/packages/4f/5c/01584dcb5f98d911cf0993403e2f24b48a32f21d88c4fc56826f3e8f7e3e/pyrate_build-0.1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e3687b01465785d7af087bcbb49f980", "sha256": "4d1442e08acde31df8db8b219974c214efea9fc2da3a42b375a7aac0fdcdbad4" }, "downloads": -1, "filename": "pyrate-build-0.1.9.tar.gz", "has_sig": true, "md5_digest": "7e3687b01465785d7af087bcbb49f980", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18127, "upload_time": "2016-01-17T14:17:25", "url": "https://files.pythonhosted.org/packages/ff/72/32b2928fab2c8698ecf130bb852e8c6e76313942ab8f5918d663991c0110/pyrate-build-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e76faa4df63ab922c1504cf33c12ef1d", "sha256": "800d97e43d3a40f34bc586d2860c62701c76fc05232a13b5fa5b718c0e9cb8cc" }, "downloads": -1, "filename": "pyrate_build-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e76faa4df63ab922c1504cf33c12ef1d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27340, "upload_time": "2016-02-03T13:54:28", "url": "https://files.pythonhosted.org/packages/8a/6a/fba612acc83bf8f62be61b592018d71b95d643fefdefafb006c69b8daaa6/pyrate_build-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1a9361f43eee2c899fc3d757cee5857", "sha256": "43b6817ea7da1b83b89b0609aac16ee1606ea1ff8803704deea3f24d4a730b0d" }, "downloads": -1, "filename": "pyrate-build-0.2.0.tar.gz", "has_sig": true, "md5_digest": "f1a9361f43eee2c899fc3d757cee5857", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26145, "upload_time": "2016-02-03T13:54:41", "url": "https://files.pythonhosted.org/packages/57/6c/77085f0dcfe5c1bac7f8d2ee136be974669e11257c87489b4972469c7eee/pyrate-build-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1cf45e28b2c16743d5dcbdedb14c2e6f", "sha256": "d2aeb704776defa5e2c32550113973e7cfd28350def322412c26076a4c51e6d8" }, "downloads": -1, "filename": "pyrate_build-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1cf45e28b2c16743d5dcbdedb14c2e6f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27307, "upload_time": "2016-02-03T18:40:35", "url": "https://files.pythonhosted.org/packages/ca/3f/0bb8b4cb513701aa4ac2a9f435c869512b88ca211ea54066eab4c99bc719/pyrate_build-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f2e4d8cdb7624bd0526f8596dd28b73f", "sha256": "7415c7d5e439ffc7c8575db7bc8522dc2aea34ceae81c6f46b8b98f7104a3c86" }, "downloads": -1, "filename": "pyrate-build-0.2.1.tar.gz", "has_sig": true, "md5_digest": "f2e4d8cdb7624bd0526f8596dd28b73f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26105, "upload_time": "2016-02-03T18:40:51", "url": "https://files.pythonhosted.org/packages/18/9e/89dde859a2925a22769f6e10ff5f562ed22d984f3035b5de6b9e82befabb/pyrate-build-0.2.1.tar.gz" } ], "0.2.10": [ { "comment_text": "", "digests": { "md5": "29bca37d1d7d20a19b0c10ebb9583d21", "sha256": "a95ae7b7535833dc3c8a573c3170ba85a5d8ec5daccfa0ae5f10454d92adc40f" }, "downloads": -1, "filename": "pyrate_build-0.2.10-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "29bca37d1d7d20a19b0c10ebb9583d21", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 33462, "upload_time": "2016-12-21T15:39:45", "url": "https://files.pythonhosted.org/packages/58/25/01d03787c1fb0da6c85e8bbb0b88e7acae7046dab0342491dcf105f83ae9/pyrate_build-0.2.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f02ad403597c635fad96948ab17663a1", "sha256": "4e266e13d2091882ca6fa793f6a137f87c8245eee98ec3c6599231a265b0fb43" }, "downloads": -1, "filename": "pyrate-build-0.2.10.tar.gz", "has_sig": true, "md5_digest": "f02ad403597c635fad96948ab17663a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39862, "upload_time": "2016-12-21T15:40:39", "url": "https://files.pythonhosted.org/packages/86/b6/90dc3a0c53df7052063126a029c7fe03f287dda45c012352eb6093838257/pyrate-build-0.2.10.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "68e4b9cec1efeea2dd8294c05a7f8d24", "sha256": "663feb2bc0e60418145cdbf3eb2758499d7b40b9eef7ee6389af6f513219635b" }, "downloads": -1, "filename": "pyrate_build-0.2.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "68e4b9cec1efeea2dd8294c05a7f8d24", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27787, "upload_time": "2016-02-04T04:11:35", "url": "https://files.pythonhosted.org/packages/b3/bf/d1c2cd4da8304dc4fe5b6302d6ec545a23b549d3e73259d4e734f238d96e/pyrate_build-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7a151ad0f026edf1f34769cbcf4027a9", "sha256": "b7491c3a420c9ef69b8aa50095046401f9b12f6297ae1a36bbf6e077a1d82a9b" }, "downloads": -1, "filename": "pyrate-build-0.2.2.tar.gz", "has_sig": true, "md5_digest": "7a151ad0f026edf1f34769cbcf4027a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26586, "upload_time": "2016-02-04T04:11:55", "url": "https://files.pythonhosted.org/packages/5f/52/4f85928e8e69f1d8c23583c3b2bda8d65017d0db5b5bc532c1db10f1d900/pyrate-build-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "fef2fa56cf22aabec7f7d3c5a45b4311", "sha256": "969c3600b6a7e265f5efad5656a85bd4a696c34de83cf8a852db6a65616976d5" }, "downloads": -1, "filename": "pyrate_build-0.2.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "fef2fa56cf22aabec7f7d3c5a45b4311", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 28447, "upload_time": "2016-02-07T08:31:18", "url": "https://files.pythonhosted.org/packages/74/44/cfee41e091d41ec6058e8ece30fd33c650aa39563b4e16a0725792f51ab1/pyrate_build-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c972657765914a413da37930229101de", "sha256": "e406783c169546b94fc42429d8d01d1d9c25743d46a110918cf177fa304838bb" }, "downloads": -1, "filename": "pyrate-build-0.2.3.tar.gz", "has_sig": true, "md5_digest": "c972657765914a413da37930229101de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27258, "upload_time": "2016-02-07T08:31:41", "url": "https://files.pythonhosted.org/packages/98/85/0f6342585121f902580fa7b253344e05a2eb7ce9bba06a3c515d78b2ca5f/pyrate-build-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "01d0d73653f8b70a1fa1ad056a2ece25", "sha256": "000d47b65c93c482d7aaa9290b103dd6d0b5b24dd8a0405d1a2628bcc8d86a13" }, "downloads": -1, "filename": "pyrate_build-0.2.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "01d0d73653f8b70a1fa1ad056a2ece25", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 29965, "upload_time": "2016-02-07T18:06:55", "url": "https://files.pythonhosted.org/packages/fc/0a/4f870b6d7234fa594b4a78c919ba5e40fb0283dc2ebbb9e9d6a52e46615a/pyrate_build-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3affc4e49363330e88216d9cde9b0e7", "sha256": "666f1bcf2fc7f7603218cb8c18453f2008d10d7c759c1c778dbb31ed5afe6b15" }, "downloads": -1, "filename": "pyrate-build-0.2.4.tar.gz", "has_sig": true, "md5_digest": "d3affc4e49363330e88216d9cde9b0e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35292, "upload_time": "2016-02-07T18:06:36", "url": "https://files.pythonhosted.org/packages/f4/b3/df3f3eac63cb647dad85d133ca98ad2876446d8320e4b67471cd491e7770/pyrate-build-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "2af0bcf5630b1a264b5ba8793410c74f", "sha256": "55482337384c6f7b3a9a80958ea44202b9480f799b45b6439e31136693e5f929" }, "downloads": -1, "filename": "pyrate_build-0.2.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2af0bcf5630b1a264b5ba8793410c74f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 31089, "upload_time": "2016-02-08T10:25:22", "url": "https://files.pythonhosted.org/packages/51/0a/0c75b378f92eb232c146f42aab42b4bf93abace69c3283a447159109c439/pyrate_build-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae78f5892a01452daf06132a4231b653", "sha256": "f52066feb3acbae4b65eb85b9dabece06d261b65dfde5a905515c2ae527a7e00" }, "downloads": -1, "filename": "pyrate-build-0.2.5.tar.gz", "has_sig": true, "md5_digest": "ae78f5892a01452daf06132a4231b653", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36757, "upload_time": "2016-02-08T10:25:38", "url": "https://files.pythonhosted.org/packages/40/fd/faff0d520adc3b04df28a1dc23e73c95e21d5b90178bb3465dae1438588d/pyrate-build-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "4a25b9a6cd95c2c7699f433114e56ae9", "sha256": "0a4eea41b75b8f18a279147f0a48930f1e470dd88c42ce85448217a371600738" }, "downloads": -1, "filename": "pyrate_build-0.2.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4a25b9a6cd95c2c7699f433114e56ae9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 31467, "upload_time": "2016-02-22T18:14:03", "url": "https://files.pythonhosted.org/packages/54/ca/bf8550ddad87472d2b0da997e37f808dcf5c65ac8e5b0444e430be4d3443/pyrate_build-0.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e4fe2c26ce843e823f45f00616ea8e1", "sha256": "0c75ced1423ba374859097cf5151081e0e598b42d578d704aa106c5f6d7f80e3" }, "downloads": -1, "filename": "pyrate-build-0.2.6.tar.gz", "has_sig": true, "md5_digest": "6e4fe2c26ce843e823f45f00616ea8e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37171, "upload_time": "2016-02-22T18:14:25", "url": "https://files.pythonhosted.org/packages/55/6b/c7061640a8458d132f492333268970618665c637abf50d35616197db3186/pyrate-build-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "56790575b603bcc4e28099d7b76d03ef", "sha256": "c9ef050d69c82df95e6f81a3b9728e9d97acfa3e01511df5e7f951b447e87f2b" }, "downloads": -1, "filename": "pyrate_build-0.2.7-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "56790575b603bcc4e28099d7b76d03ef", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 32092, "upload_time": "2016-02-23T10:38:21", "url": "https://files.pythonhosted.org/packages/57/8e/7f86a760272a1661ddc59e72a182cabfe7595b5197daa42fa14c45881e96/pyrate_build-0.2.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ab3fbb90cfd71ec5b29d7651673ce92", "sha256": "dbc1efd5e64a863b44b1adb0cdf87132522847a2cd935e0cf9ddd5c1704276f6" }, "downloads": -1, "filename": "pyrate-build-0.2.7.tar.gz", "has_sig": true, "md5_digest": "8ab3fbb90cfd71ec5b29d7651673ce92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38027, "upload_time": "2016-02-23T10:38:44", "url": "https://files.pythonhosted.org/packages/ba/99/47bc1ba8ff310aa51a50944b8555a883f3d38b645d6e40f0840a86f365cf/pyrate-build-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "aabb8a05467be58dfba0000535d052b0", "sha256": "7a3fa4a39c6070034090858a8d9cfe26076bacc68a2aada50d9d3dd60ac5186c" }, "downloads": -1, "filename": "pyrate_build-0.2.8-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "aabb8a05467be58dfba0000535d052b0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 32206, "upload_time": "2016-04-06T00:02:10", "url": "https://files.pythonhosted.org/packages/e7/87/2e1492c64ff777079fac07c65738d6081e8442a41476b07d6b120cfdf9c6/pyrate_build-0.2.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4b7aa173177c983616727fc01f400e38", "sha256": "ec1f5da3c16fef7ed02e98e1fb4335d9f9ae464f5ef3cf48fa165ea5fd5d073b" }, "downloads": -1, "filename": "pyrate-build-0.2.8.tar.gz", "has_sig": true, "md5_digest": "4b7aa173177c983616727fc01f400e38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38157, "upload_time": "2016-04-06T00:01:53", "url": "https://files.pythonhosted.org/packages/8d/5b/36c6eb4473c4e77161f1d397a5ba882a0ae40e76abe2082e84c9034401f7/pyrate-build-0.2.8.tar.gz" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "38b48073310d009899de2b60925f9a8b", "sha256": "f742f3fa9321c9e99efccf627ce6fd05b3a54e5cdd618b797bdd7716f952b362" }, "downloads": -1, "filename": "pyrate_build-0.2.9-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "38b48073310d009899de2b60925f9a8b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 33009, "upload_time": "2016-12-14T16:59:37", "url": "https://files.pythonhosted.org/packages/d2/3c/f5b68bfeaf91a2f875e8b7422bcb43042b3a9750989b6bae005b523006f0/pyrate_build-0.2.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f971c820685cef14a027a4bae85aa72d", "sha256": "e2ca1d47e26edefb34ec06906b6ca63ff9eb99bcec89d13b6acc0b663c466cc2" }, "downloads": -1, "filename": "pyrate-build-0.2.9.tar.gz", "has_sig": true, "md5_digest": "f971c820685cef14a027a4bae85aa72d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39294, "upload_time": "2016-12-14T16:59:29", "url": "https://files.pythonhosted.org/packages/0f/c0/fdf30e2b95a5b15ae8daba831bfbb5b27ca023fbd57cc603114e4307b778/pyrate-build-0.2.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "29bca37d1d7d20a19b0c10ebb9583d21", "sha256": "a95ae7b7535833dc3c8a573c3170ba85a5d8ec5daccfa0ae5f10454d92adc40f" }, "downloads": -1, "filename": "pyrate_build-0.2.10-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "29bca37d1d7d20a19b0c10ebb9583d21", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 33462, "upload_time": "2016-12-21T15:39:45", "url": "https://files.pythonhosted.org/packages/58/25/01d03787c1fb0da6c85e8bbb0b88e7acae7046dab0342491dcf105f83ae9/pyrate_build-0.2.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f02ad403597c635fad96948ab17663a1", "sha256": "4e266e13d2091882ca6fa793f6a137f87c8245eee98ec3c6599231a265b0fb43" }, "downloads": -1, "filename": "pyrate-build-0.2.10.tar.gz", "has_sig": true, "md5_digest": "f02ad403597c635fad96948ab17663a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39862, "upload_time": "2016-12-21T15:40:39", "url": "https://files.pythonhosted.org/packages/86/b6/90dc3a0c53df7052063126a029c7fe03f287dda45c012352eb6093838257/pyrate-build-0.2.10.tar.gz" } ] }