{ "info": { "author": "Fabian Greif, Niklas Hauser", "author_email": "fabian.greif@rwth-aachen.de, niklas@salkinium.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: Software Development", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Embedded Systems" ], "description": "# lbuild: generic, modular code generation in Python 3\n\nThe Library Builder (pronounced *lbuild*) is a BSD licensed [Python 3.5 tool][python]\nfor describing repositories containing modules which can copy or generate a set\nof files based on the user provided data and options.\n\n*lbuild* allows splitting up complex code generation projects into smaller\nmodules with configurable options, and provides for their transparent\ndiscovery, documentation and dependency management.\nEach module is written in Python 3 and declares its options and how to generate\nits content via the [Jinja2 templating engine][jinja2] or a file/folder copy.\n\nYou can [install *lbuild* via PyPi][pypi]: `pip install lbuild`\n\nProjects using *lbuild*:\n\n- [modm generates a HAL for thousands of embedded devices][modm] using *lbuild*\n and a data-driven code generation pipeline.\n- [Taproot: a friendly control library and framework for RoboMaster robots][taproot]\n uses *lbuild*.\n- [OUTPOST - Open modUlar sofTware PlatfOrm for SpacecrafT][outpost] uses *lbuild*\n to assemble an execution platform targeted at embedded systems running mission\n critical software.\n\nThe dedicated maintainer of *lbuild* is [@salkinium][salkinium].\n\n\n## Overview\n\nConsider this repository:\n\n```\n $ lbuild discover\nParser(lbuild)\n\u2570\u2500\u2500 Repository(repo @ ../repo)\n \u251c\u2500\u2500 Option(option) = value in [value, special]\n \u251c\u2500\u2500 Module(repo:module)\n \u2502 \u251c\u2500\u2500 Option(option) = yes in [yes, no]\n \u2502 \u251c\u2500\u2500 Module(repo:module:submodule)\n \u2502 \u2502 \u2570\u2500\u2500 Option(option) = REQUIRED in [1, 2, 3, 4, 5]\n \u2502 \u2570\u2500\u2500 Module(repo:module:submodule2)\n \u2570\u2500\u2500 Module(modm:module2)\n```\n\n*lbuild* is called by the user with a configuration file which contains the\nrepositories to scan, the modules to include and the options to configure\nthem with:\n\n```xml\n\n \n ../repo/repo.lb\n \n \n \n \n \n \n repo:module\n \n\n```\n\nThe `repo.lb` file is compiled by *lbuild* and the two functions `init`,\n`prepare` are called:\n\n```python\ndef init(repo):\n repo.name = \"repo\"\n repo.add_option(EnumerationOption(name=\"option\",\n enumeration=[\"value\", \"special\"],\n default=\"value\"))\n\ndef prepare(repo, options):\n repo.find_modules_recursive(\"src\")\n```\n\nThis gives the repository a name and declares a string option. The prepare step\nadds all module files in the `src/` folder.\n\nEach `module.lb` file is then compiled by *lbuild*, and the three functions\n`init`, `prepare` and `build` are called:\n\n```python\ndef init(module):\n module.name = \":module\"\n\ndef prepare(module, options):\n if options[\"repo:option\"] == \"special\":\n module.add_option(EnumerationOption(name=\"option\", enumeration=[1, 2, 3, 4, 5]))\n return True\n return False\n\ndef build(env):\n env.outbasepath = \"repo/module\"\n env.copy(\"static.hpp\")\n for number in range(env[\"repo:module:option\"]):\n env.template(\"template.cpp.in\", \"template_{}.cpp\".format(number + 1))\n```\n\nThe init step sets the module's name and its parent name. The prepare step\nthen adds a `EnumerationOption` and makes the module available, if the repository option\nis set to `\"special\"`. Finally in the build step, a number of files are generated\nbased on the option's content.\n\nThe files are generated at the call-site of `lbuild build` which would then\nlook something like this:\n\n```\n $ ls\nmain.cpp project.xml\n $ lbuild build\n $ tree\n.\n\u251c\u2500\u2500 main.cpp\n\u251c\u2500\u2500 repo\n\u2502 \u251c\u2500\u2500 module\n\u2502 \u2502 \u251c\u2500\u2500 static.hpp\n\u2502 \u2502 \u251c\u2500\u2500 template_1.cpp\n\u2502 \u2502 \u251c\u2500\u2500 template_2.cpp\n\u2502 \u2502 \u2514\u2500\u2500 template_3.cpp\n```\n\n\n## Documentation\n\nThe above example shows a minimal feature set, but *lbuild* has a few more\ntricks up its sleeves. Let's have a look at the API in more detail with examples\nfrom [the modm repository][modm].\n\n\n### Command Line Interface\n\nBefore you can build a project you need to provide a configuration.\n*lbuild* aims to make discovery easy from the command line:\n\n```\n $ lbuild --repository ../modm/repo.lb discover\nParser(lbuild)\n\u2570\u2500\u2500 Repository(modm @ ../modm) modm: a barebone embedded library generator\n \u2570\u2500\u2500 Option(target) = REQUIRED in [at90can128, at90can32, at90can64, ...\n```\n\nThis gives you an overview of the repositories and their options. In this case\nthe `modm:target` repository option is required, so let's check that out:\n\n```\n $ lbuild -r ../modm/repo.lb discover-options\nmodm:target = REQUIRED in [at90can128, at90can32, at90can64, at90pwm1, at90pwm161, at90pwm2,\n ... a really long list ...\n stm32l4s9vit, stm32l4s9zij, stm32l4s9zit, stm32l4s9ziy]\n\n Meta-HAL target device\n```\n\nYou can then choose this repository option and discover the available modules\nfor this specific repository option:\n\n```\n $ lbuild -r ../modm/repo.lb --option modm:target=stm32f407vgt discover\nParser(lbuild)\n\u2570\u2500\u2500 Repository(modm @ ../modm) modm: a barebone embedded library generator\n \u251c\u2500\u2500 Option(target) = stm32f407vgt in [at90can128, at90can32, at90can64, ...]\n \u251c\u2500\u2500 Configuration(modm:disco-f407vg)\n \u251c\u2500\u2500 Module(modm:board) Board Support Packages\n \u2502 \u2570\u2500\u2500 Module(modm:board:disco-f469ni) STM32F469IDISCOVERY\n \u251c\u2500\u2500 Module(modm:build) Build System Generators\n \u2502 \u251c\u2500\u2500 PathOption(build.path) = build/parent-folder in [String]\n \u2502 \u251c\u2500\u2500 Option(project.name) = parent-folder in [String]\n \u2502 \u2570\u2500\u2500 Module(modm:build:scons) SCons Build Script Generator\n \u2502 \u251c\u2500\u2500 Option(info.build) = no in [yes, no]\n \u2502 \u2570\u2500\u2500 Option(info.git) = Disabled in [Disabled, Info, Info+Status]\n \u251c\u2500\u2500 Module(modm:platform) Platform HAL\n \u2502 \u251c\u2500\u2500 Module(modm:platform:can) Controller Area Network (CAN)\n \u2502 \u2502 \u2570\u2500\u2500 Module(modm:platform:can:1) Instance 1\n \u2502 \u2502 \u251c\u2500\u2500 Option(buffer.rx) = 32 in [1 .. 32 .. 65534]\n \u2502 \u2502 \u2570\u2500\u2500 Option(buffer.tx) = 32 in [1 .. 32 .. 65534]\n \u2502 \u251c\u2500\u2500 Module(modm:platform:core) ARM Cortex-M Core\n \u2502 \u2502 \u251c\u2500\u2500 Option(allocator) = newlib in [block, newlib, tlsf]\n \u2502 \u2502 \u251c\u2500\u2500 Option(main_stack_size) = 3072 in [256 .. 3072 .. 65536]\n \u2502 \u2502 \u2570\u2500\u2500 Option(vector_table_location) = rom in [ram, rom]\n```\n\nYou can now discover all module options in more detail:\n\n```\n $ lbuild -r ../modm/repo.lb -D modm:target=stm32f407vgt discover-options\nmodm:target = stm32f407vgt in [at90can128, at90can32, at90can64, ...]\n\n Meta-HAL target device\n\nmodm:build:build.path = build/parent-folder in [String]\n\n Path to the build folder\n\nmodm:build:project.name = parent-folder in [String]\n\n Project name for executable\n```\n\nOr check out specific module and option descriptions:\n\n```\n $ lbuild -r ../modm/repo.lb -D modm:target=stm32f407vgt discover -n :build\n>> modm:build\n\n# Build System Generators\n\nThis parent module defines a common set of functionality that is independent of\nthe specific build system generator implementation.\n\n>>>> modm:build:project.name [StringOption]\n\n# Project Name\n\nThe project name defaults to the folder name you're calling lbuild from.\n\nValue: parent-folder\nInputs: [String]\n\n>>>> modm:build:build.path [StringOption]\n\n# Build Path\n\nThe build path is defaulted to `build/{modm:build:project.name}`.\n\nValue: build/parent-folder\nInputs: [String]\n```\n\nThe complete lbuild command line interface is available with `lbuild -h`.\n\n\n### Configuration\n\nEven though *lbuild* can be configured sorely via the command line, it is\nstrongly recommended to create a configuration file (default is `project.xml`)\nwhich *lbuild* will search for in the current working directory.\n\n```xml\n\n \n \n path/to/repo.lb\n \n ${PROJECTHOME}/repo2.lb\n \n ext/**/repo.lb\n \n \n path/to/config.xml\n \n repo:name_of_config\n \n repo:name_of_config:specific_version\n \n generated/folder\n \n \n \n \n \n \n \n \n repo:module\n repo:other_module:submodule\n \n\n```\n\nOn startup, *lbuild* will search the current working directory upwards for one or more\n`lbuild.xml` files, which if found, are used as the base configuration, inherited\nby all other configurations. This is very useful when several projects all\nrequire the same repositories, and you don't want to specify each repository\npath for each project.\n\n```xml\n\n \n path/to/common/repo.lb\n \n \n repo:module-required-by-all\n \n\n```\n\nIn the simplest case your project just `` this base config.\n\n```xml\n\n repo:config-name\n\n```\n\n\n### Files\n\n*lbuild* properly imports the declared repository and modules files, so you can\nuse everything that Python has to offer.\nIn addition to `import`ing your required modules, *lbuild* provides these\nglobal functions and classes for use in all files:\n\n- `localpath(path)`: remaps paths relative to the currently executing file.\n All paths are already interpreted relative to this file, but you can use this\n to be explicit.\n- `repopath(path)`: remaps paths relative to the repository file. You should use\n this to reference paths that are not related to your module.\n- `listify(obj)`: turns obj into a list, maps `None` to empty list.\n- `listrify(obj)`: turns obj into a list of strings, maps `None` to empty list.\n- `uniquify(obj)`: turns obj into a unique list, maps `None` to empty list.\n- `FileReader(path)`: reads the contents of a file and turns it into a string.\n- `{*}Option(...)`: classes for describing options, [see Options](#Options).\n- `{*}Query(...)`: classes for sharing code and data, [see Queries](#Queries).\n- `{*}Collector(...)`: classes for describing metadata sinks, [see Collectors](#Collectors).\n- `Alias(...)`: links to other nodes, [see Aliases](#Aliases).\n- `Configuration(...)`: links to a configuration inside the repository.\n\n\n### Repositories\n\n*lbuild* calls these three functions for any repository file:\n\n- `init(repo)`: provides name, documentation and other global functionality.\n- `prepare(repo, options)`: adds all module files for this repository.\n- `build(env)` (*optional*): *only* called if at least one module within the\n repository is built. It is meant for actions that must be performed for *any*\n module, like generating a global header file, or adding to the include path.\n\n```python\n# You can use everything Python has to offer\nimport antigravity\n\ndef init(repo):\n # You must give your repository a name, and it must be unique within the\n # scope of your project as it is used for namespacing all modules\n repo.name = \"name\"\n # You can set a repository description here, either as an inline string\n repo.description = \"Repository Description\"\n # or as a multi-line string\n repo.description = \"\"\"\nMultiline description.\n\nUse whatever markup you want, lbuild treats it all as text.\n\"\"\"\n # or read it from a separate file altogether\n repo.description = FileReader(\"module.md\")\n\n # lbuild displays the descriptions as-is, without any modification, however,\n # you can set a custom format handler to change this for your repo.\n # NOTE: Custom format handlers are applied to all modules and options.\n def format_description(node, description):\n # in modm there's unit test metadata in HTML comments, let's remove them\n description = re.sub(r\"\\n?\\n?\", \"\", description, flags=re.S)\n # forward this to the default formatter\n return node.format_description(node, description)\n repo.format_description = format_description\n\n # You can also format the short descriptions for the discover views\n def format_short_description(node, description):\n # Remove the leading # from the Markdown headers\n return node.format_short_description(node, description.replace(\"#\", \"\"))\n repo.format_short_description = format_short_description\n\n # Add ignore patterns for all repository modules\n # ignore patterns follow fnmatch rules\n repo.add_ignore_patterns(\"*/*.lb\", \"*/board.xml\")\n\n # Add Jinja2 filters for all repository modules\n # NOTE: the filter is namespaced with the repository! {{ \"A\" | repo.number }} -> 65\n repo.add_filter(\"repo.number\", lambda char: ord(char))\n\n # Add an alias for a internal configuration\n # NOTE: the configuration is namespaced with the repository! repo:config\n repo.add_configuration(Configuration(name=\"config\",\n description=\"Special Config\",\n path=\"path/to/config.xml\")\n # You can also add configuration versions\n repo.add_configuration(Configuration(name=\"config2\",\n description=\"Versioned Config\",\n path={\"v1\": \"path/to/config_v1.xml\",\n \"v2\": \"path/to/config_v2.xml\"})\n\n # See Options for more option types\n repo.add_option(StringOption(name=\"option\", default=\"value\"))\n\n\ndef prepare(repo, options):\n # Access repository options via the `options` resolver\n if options[\"repo:option\"] == \"value\":\n # Adds module files directly, or via globbing, all paths relative to this file\n repo.add_modules(\"folder/module.lb\", repo.glob(\"*/*/module.lb\"))\n # Searches recursively starting at basepath, adding any file that\n # fnmatch(`modulefile`), while ignoring fnmatch(`ignore`) patterns\n repo.add_modules_recursive(basepath=\".\", modulefile=\"*.lb\", ignore=\"*/ignore/patterns/*\")\n\n\n# The build step is optional\ndef build(env):\n # Add the generated src/ folder to the header search path collector\n env.collect(\"::include_path\", \"src/\")\n # See module.build(env) for complete feature description.\n```\n\n\n### Modules\n\n*lbuild* calls these five functions for any module file:\n\n- `init(module)`: provides module name, parent and documentation.\n- `prepare(module, options)`: enables modules, adds options and submodules by\n taking the repository options into consideration.\n- `validate(env)` (*optional*): validate your inputs before building anything.\n- `build(env)`: generate your library and add metadata to build log.\n- `post_build(env, buildlog)` (*optional*): access the build log after the build\n step completed.\n\nModule files are provided with these additional global classes:\n\n- `Module`: Base class for generated modules.\n- `ValidateException`: Exception to be raised when the `validate(env)` step fails.\n\nNote that in contrast to a repository, modules must return a boolean from the\n`prepare(module, options)` function, which indicates that the module is available\nfor the repository option configuration. This allows for modules to \"share\" a\nname, but have completely different implementations.\n\nThe `validate(env)` step is used to validate the input for the build step,\nallowing for computations that can fail to raise a `ValidateException(\"reason\")`.\n*lbuild* will collect these exceptions for all modules and display them\ntogether before aborting the build. This step is performed before each build,\nand you cannot generate any files in this step, only read the repository's state.\nYou can manually call this step via the `lbuild validate` command.\n\nThe `build(env)` step is where the actual file generation happens. Here you can\ncopy and generate files and folders from Jinja2 templates with the substitutions\nof you choice and the configuration of the modules. Each file operation is\nappended to a global build log, which you can also explicitly add metadata to.\n\nThe `post_build(env)` step is meant for modules that need to generate\nfiles which receive information from all built modules. The typically use-case\nhere is generating scripts for build systems, which need to know about what\nfiles were generated and all module's metadata.\n\n```python\ndef init(module):\n # give your module a hierarchical name, the repository name is implicit\n module.name = \"repo:name\"\n module.name = \":name\" # same as this\n # You can set a module description here\n module.description = \"Description\"\n module.description = \"\"\"Multiline\"\"\"\n module.description = FileReader(\"module.md\")\n # modules can have their own formatters, works the same as for repositories\n module.format_description = custom_format_description\n module.format_short_description = custom_format_short_description\n # Add Jinja2 filters for this modules and all submodules\n # NOTE: the filter is namespace with the repository! {{ 65 | repo.character }} -> \"A\"\n module.add_filter(\"repo.character\", lambda number: chr(number))\n\n\ndef prepare(module, options):\n # Access repository options via the `options` resolver\n if options[\"repo:option\"] == \"value\":\n # Returning False from this step disables this module\n return False\n\n # modules can depend on other modules\n module.depends(\"repo:module1\", \":module2\", \":module3:submodule\", ...)\n\n # You can add more submodules in files\n module.add_submodule(\"folder/submodule.lb\")\n\n # You can generate more modules here. This is useful if you have a lot of\n # very similar modules (like instances of hardware peripherals) that you\n # don't want to create a module file for each for.\n class Instance(Module):\n def __init__(self, instance):\n self.instance = instance\n def init(self, module):\n module.name = str(self.instance)\n def prepare(self, module, options):\n pass\n def validate(self, env): # optional\n pass\n def build(self, env):\n pass\n def post_build(self, env): # optional\n pass\n\n # You can statically create and add these submodules\n for index in range(0, 5):\n module.add_submodule(Instance(index))\n # or make the creation dependent on a repository option\n for index in options[\"repo:instances\"]:\n module.add_submodule(Instance(index))\n\n # See Options for more option types\n module.add_option(StringOption(name=\"option\", default=\"world\"))\n\n def common_operation(args):\n \"\"\"\n You can share any function with other modules.\n This is useful to not have to duplicate code across module.lb files.\n \"\"\"\n return args\n # See Queries for more query types\n module.add_query(Query(name=\"shared_function\", function=common_operation))\n\n # You can collect information from active modules, to use any post_build step\n # See Collectors for more collector types\n module.add_collector(\n PathCollector(name=\"include_path\", description=\"Global header search paths\"))\n\n # Make this module available\n return True\n\n\n# store data computed in validate step for build step.\nbuild_data = None\n# The validation step is optional\ndef validate(env):\n # Perform your input validations here\n # Access all options\n repo_option = env[\"repo:option\"]\n defaulted_option = env.get(\"repo:module:option\", default=\"hello\")\n # Use proper logging instead of print() please\n # env.log.warning(...) and env.log.error(...) also available\n env.log.debug(\"Repo option: '{}'\".format(repo_option))\n\n # You can query for options\n if env.has_option(\"repo:module:option\") or env.has_module(\"repo:module\"):\n env.log.info(\"Module option: '{}'\".format(env[\"repo:module:option\"]))\n\n # Call shared functions from other modules with arguments\n shared_function = env.query(\"repo:module:shared_function\")\n result = shared_function(\"argument\")\n # Or just precomputed properties without arguments\n data = env.query(\"repo:module:shared_property\")\n\n # You may also use incomplete queries, see Name Resolution\n env.has_module(\":module\") # instead of repo:module\n env.has_option(\"::option\") # repo:module:option\n # And use fnmatch queries\n # matches any module starting with `mod` and option starting with `name`.\n env.has_option(\":mod*:name*\")\n env.has_query(\"::shared_*\")\n env.has_collector(\"::collector\")\n\n # Raise a ValidateException if something is wrong\n if defaulted_option + repo_option != \"hello world\":\n raise ValidateException(\"Options are invalid because ...\")\n\n # If you do heavy computations here for validation, you can store the\n # data in a global variable and reuse this for the build step\n global build_data\n build_data = defaulted_option * 2\n\n\n# The build step can do everything the validation step can\n# But now you can finally generate files\ndef build(env):\n # Set the output base path, this is relative to the lbuild invocation path\n env.outbasepath = \"repo/module\"\n\n # Copy single files\n env.copy(\"file.hpp\")\n # Copy single files while renaming them\n env.copy(\"file.hpp\", \"cool_filename.hpp\")\n # Relative paths are preserved!!!\n env.copy(\"../file.hpp\") # copies to repo/file.hpp\n env.copy(\"../file.hpp\", dest=\"file.hpp\") # copies to repo/module/file.hpp\n\n # You can also copy entire folders\n env.copy(\"folder/\", dest=\"renamed/\")\n # and ignore specific RELATIVE files/folders\n env.copy(\"folder/\", ignore=env.ignore_files(\"*.txt\", \"this_specific_file.hpp\"))\n # or ignore specific ABSOLUTE paths\n env.copy(\"folder/\", ignore=env.ignore_paths(\"*/folder/*.txt\"))\n\n # You can also copy files out of a .zip or .tar archive\n env.extract(\"archive.zip\") # everything inside the archive\n env.extract(\"archive.zip\", dest=\"renamed/\") # extract into folder\n # You can extract only parts of the archive, like a single file\n env.extract(\"archive.zip\", src=\"filename.hpp\", dest=\"renamed.hpp\")\n # or an a single folder somewhere in the archive\n env.extract(\"archive.zip\", src=\"folder/subfolder\", dest=\"renamed/folder\")\n # of course, you can ignore files and folders inside the archive too\n env.extract(\"archive.zip\", src=\"folder\", dest=\"renamed\", ignore=env.ignore_files(\"*.txt\"))\n\n # Set the global Jinja2 substitutions dictionary\n env.substitutions = {\n \"hello\": \"world\",\n \"instances\": map(str, env[\"repo:instances\"]),\n \"build_data\": build_data, # from validation step\n }\n # and generate a file from a template\n env.template(\"template.hpp.in\")\n # any `.in` postfix is automatically removed, unless you rename it\n for instance in env[\"repo:instances\"]:\n env.template(\"template.hpp.in\", \"template_{}.hpp\".format(instance))\n # You can explicitly add Jinja2 substitutions and filters\n env.template(\"template.hpp.in\",\n substitutions={\"more\": \"subs\"},\n filters={\"stringify\": lambda i: str(i)})\n # Note: these filters are NOT namespaced with the repository name!\n\n # submodules are build first, so you can access the generated files\n headers = env.get_generated_local_files(lambda file: file.endswith(\".hpp\"))\n # and use this information for a new template.\n env.template(\"module_header.hpp.in\", substitutions={\"headers\": headers})\n\n # Add values to a collector, all these are type checked\n env.collect(\"::include_path\", \"repo/must_be_valid_path/\", \"repo/folder2/\")\n\n\n# The post build step can do everything the build step can,\n# but you can't add to the metadata anymore:\n# - env.collect() unavailable\n# You have access to the entire buildlog up to this point\ndef post_build(env):\n # The absolute path to the lbuild output directory\n outpath = env.buildlog.outpath\n\n # All modules that were built\n modules = env.buildlog.modules\n # All file generation operations that were done\n operations = env.buildlog.operations\n # All operations per module\n operations = env.buildlog.operations_per_module(\"repo:module\")\n\n # iterate over all operations directly\n for operation in buildlog:\n # Get the module name that generated this file\n env.log.info(\"Module({}) generated the '{}' file\"\n .format(operation.module, operation.filename))\n # You can also get the filename relative to a subfolder in outpath\n env.relative_output(operation.filename, \"subfolder/\")\n # or as an absolute path\n env.real_output(operation.filename, \"subfolder/\")\n\n # get all include paths from all active modules\n include_paths = env.collector_values(\"::include_path\")\n```\n\n### Options\n\n*lbuild* options are mappings from strings to Python objects.\nEach option must have a unique name within their parent repository or module.\nIf you do not provide a default value, the option is marked as **REQUIRED** and\nthe project cannot be built without it.\n\n```python\ndef prepare(module, options):\n # Add option to module\n option = Option(...)\n module.add_option(option)\n\ndef build(env):\n # Check if options exist\n exists = env.has_option(\":module:option\")\n # Access option value or use default if option doesn't exist\n value = env.get(\":module:option\", default=\"value\")\n # Access option values, this may raise an exception if option doesn't exist\n value = env[\":module:option\"]\n```\n\nIf your option requires a unique set of input values, you can tell *lbuild* to \nwrap the option into a set using `module.add_set_option()`:\n\n```python\ndef prepare(module, options):\n # Add an option, but allow a set of unique values as input and output\n module.add_set_option(option)\n\ndef build(env):\n # a unique set of option values is returned here\n for value in env[\":module:option\"]:\n print(value)\n```\n\nOption sets are declared as comma-separated strings, so that inheriting\nconfigurations or passing option values via CLI can overwrite these sets.\nA `StringOption` cannot be wrapped into a set for this reasons, however, it's\neasy to split your string value in Python exactly how you want.\n\n```xml\n\n\n```\n\nIf you want to preserve duplicates to count the number of inputs, use a list\noption `module.add_list_option()`:\n\n```python\ndef prepare(module, options):\n # Add an option, but allow a list of values as input and output\n module.add_list_option(option)\n\ndef build(env):\n # a list of option values is returned here\n value_count = env[\":module:option\"].count(\"value\")\n```\n\nOptions can have a dependency handler which is called when the project\nconfiguration is merged into the module options. It will give you the chosen\ninput value and you can return a number of module dependencies.\n\n```python\ndef add_option_dependencies(value):\n if special_condition(value):\n # return single dependency\n return \"repo:module\"\n if other_special_condition(value):\n # return multiple dependencies\n return [\":module1\", \":module2\"]\n # No additional dependencies\n return None\n```\n\n\n#### StringOption\n\nThis is the most generic option, allowing to input any string.\nYou may, however, provide your own validator that may raise a `ValueError`\nif the input string does not match your expectations.\nYou may also pass a transformation function to convert the option value.\nThe string is passed unmodified from the configuration to the module and the\ndependency handler.\n\n```python\ndef validate_string(string):\n if \"please\" not in string:\n raise ValueError(\"Input does not contain the magic word!\")\n\ndef transform_string(string):\n return string.lower()\n\noption = StringOption(name=\"option-name\",\n description=\"inline\", # or FileReader(\"file.md\")\n default=\"default string\",\n validate=validate_string,\n transform=transform_string,\n dependencies=add_option_dependencies)\n```\n\n\n#### PathOption\n\nThis option operates on strings, but additionally validates them to be\nsyntactically valid paths, so the filesystem accepts these strings\nas valid arguments to path operations. This option does not check if the path\nexists, or if it can be created, just if the string is properly formatted.\n\nSince an empty string is not a valid path, but it can be useful to allow an\nempty string as an input value to encode a special case (like a \"disable\" value),\nyou may set `empty_ok=True` to tell the path validation to ignore empty strings.\n\nBy default, the path input is not modified and must be correctly interpreted in\nthe context of the module that uses it (usually relocated to the output path).\nHowever, if you want to input an existing path you should set `absolute=True`,\nso that *lbuild* can relocate the *relative path* declared in the config files\nto an absolute path, which is indepented of the CWD.\nThis is particularly useful if you declare paths in config files that are not\nlocated at the project root, like options inherited from multiple `lbuild.xml`.\n\n```python\noption = PathOption(name=\"option-name\",\n description=\"path\",\n default=\"path/to/folder/or/file\",\n empty_ok=False, # is an empty path considered valid?\n absolute=False, # is the path relative to the config file?\n validate=validate_path,\n dependencies=add_option_dependencies)\n```\n\n\n#### BooleanOption\n\nThis option maps strings from `true`, `yes`, `1`, `enable` to `bool(True)` and\n`false`, `no`, `0`, `disable` to `bool(False)`. You can extend this list with a\ncustom transform handler. The dependency handler is passed this `bool` value.\n\n```python\ndef transform_boolean(string):\n if string == 'y': return True;\n if string == 'n': return False;\n return string # hand over to built-in conversion\n\noption = BooleanOption(name=\"option-name\",\n description=\"boolean\",\n default=True,\n transform=transform_boolean,\n dependencies=add_option_dependencies)\n```\n\n\n#### NumericOption\n\nThis option allows a number from [-Inf, +Inf]. You can limit this to the\nrange [minimum, maximum]. When using floating point numbers here, please be\naware that not all floating point numbers can be represented as a string\n(like \"1/3\"). The validation and dependency handlers are passed a numeric value.\n\n```python\noption = NumericOption(name=\"option-name\",\n description=\"numeric\",\n minimum=0,\n maximum=100,\n default=50,\n validate=validate_number,\n dependencies=add_option_dependencies)\n```\n\n\n#### EnumerationOption\n\nThis option maps a string to any generic Python object.\nYou can provide a list, set, tuple or range, the only limitation is that\nthe objects must be convertible to a string for unique identification.\nIf this is not possible, you can provide a dictionary with a manual mapping\nfrom string to object. The dependency handler is passed the string value.\n\n```python\noption = EnumerationOption(name=\"option-name\",\n description=\"enumeration\",\n # must be implicitly convertible to string!\n enumeration=[\"value\", 1, obj],\n # or use a dictionary explicitly\n enumeration={\"value\": \"value\", \"1\": 1, \"obj\": obj},\n default=\"1\",\n dependencies=add_option_dependencies)\n```\n\n\n### Queries\n\nIt is sometimes necessary to share code and data between *lbuild* modules,\nwhich can be difficult when they are split across files and repositories.\nQueries allow you to share functions and computed properties with other modules\nusing the global name resolution system.\n\n```python\ndef prepare(module, options):\n # Add queries to module\n query = Query(...)\n module.add_query(query)\n\ndef build(env):\n exists = env.has_query(\":module:query\")\n # Access query value or use default if query doesn't exist\n data = env.query(\":module:query\", default=\"value\")\n```\n\n*Note that queries must be stateless (aka. a pure function), since module build\norder is not guaranteed. You must enforce this property yourself.*\n\nYou can discover all the available queries in your repository using\n`lbuild discover --developer`.\n\n\n#### Query\n\nThis wraps any callable object into a query. By default the name is taken from\nthe object's name, however, you may overwrite this.\nNote that when using a lambda function, you must provide a name.\nThe description is taken from the objects docstring.\n\n```python\ndef shared_function(args):\n \"\"\"\n Describe what this query does.\n\n :param args: what does it need?\n :returns: what does it return?\n \"\"\"\n return args\n\nquery = Query(function=shared_function)\nquery = Query(name=\"different_name\",\n function=shared_function)\n```\n\n\n#### EnvironmentQuery\n\nThis query's result is computed only once on demand and then cached.\n\nThe data must be returned from a factory function that gets passed the\nenvironment of the first module to access this query.\nThe return value is then cached for all further accesses.\nThis allows you to lazily compute your shared properties only once and only if\naccessed by any module.\n\n```python\ndef factory(env):\n \"\"\"\n Describe what this query is about, but don't document the `env` argument.\n\n :returns: an immutable object\n \"\"\"\n # You can read the build environment, but cannot modify it here\n value = env[\"repo:module:option\"]\n # This return data is cached, so this function is only called once.\n return {\"key\": value}\n\nquery = EnvironmentQuery(name=\"name\",\n factory=factory)\n```\n\n\n### Collectors\n\nThe post-build step has access to the build log containing the list of modules\nthat were built and what files they generated.\nHowever, these modules also need to pass additional data to the post-build steps,\nso that this information can be computed locally.\n\n*lbuild* allows each module to declare what metadata it wants using a collector,\nwhich is given a name, description and optional limitations depending on type.\nIn the build step, each module may add values to this collector, which the\npost-build steps then can access.\n\n```python\ndef prepare(module, options):\n # Add a collector to module\n collector = Collector(...)\n module.add_collector(collector)\n\ndef build(env):\n exists = env.has_collector(\":module:collector\")\n # Add values to this collector\n env.collect(\":module:collector\", \"value1\", \"value2\", \"value3\")\n\ndef post_build(env):\n # Get all unique values from all operations\n unique_values = env.collector_values(\":module:collector\")\n # get all values from all operations, even duplicates!\n all_values = env.collector_values(\":module:collector\", unique=False)\n```\n\nNote that the ordering of values is preserved only relative to the order they\nwere added within a module and only if accessing them non-uniquely!\nThe above example will preserve the order of `value1`, `value2` and `value3`,\nonly if the values are accessed not uniquely and only relative to each other.\n\nWhen you add values to a collector, the current operation is recorded, consisting\nout of the current module, but you may also explicitly set this to a set of\nfile operations:\n\n```python\ndef build(env):\n operation = env.copy(\"file.hpp\")\n # Add values to this collector for the file operation\n env.collect(\":module:collector\", \"values\", operations=operation)\n\n # The return value from a file operation is actually a set of operations\n operations = env.copy(\"folder1/\")\n # So you can extend this set for multiple file operations\n operations |= env.copy(\"folder2/\")\n # And then filter this set of operations\n operations = filter(lambda op: op.filename.endswith(\".txt\"), operations)\n # Only add this metadata to .txt files\n env.collect(\":module:collector\", \"txt-file-values\", operations=operations)\n\n # A file operation object has these properties:\n operation.module # full module name, this is always available\n operation.repository # repository name, always available\n operation.has_filename # Some operations are specific to files\n operation.filename # The generated filename relative to outpath\n\ndef post_build(env):\n # You can use these operation properties to filter the collector values\n txt_filter = lambda op: op.repository == \"repo\" and op.filename.endswith(\".txt\")\n unique_txt_values = env.collector_values(\":module:collector\", filterfunc=txt_filter)\n # May contain duplicate values!\n all_txt_values = env.collector_values(\":module:collector\", filterfunc=txt_filter, unique=False)\n```\n\nIf you have very special requirements for the ordering values (for example\nwhen collecting compile flags), consider iterating over the collectors items\nmanually, and possibly de-duplicating and reordering the values yourself.\n\n```python\ndef post_build(env):\n # Get the collector, may return None if collector does not exist!\n collector = env.collector(\":module:collector\")\n if collector is not None:\n for operation, values in collector.items():\n # values is a list and may contain duplicates\n print(operation.module, values)\n if operation.has_filename: # not all operations have filenames!\n print(operation.filename)\n```\n\nNote that collector values that were added by a module without explicit\noperations do not have filename, only module names!\n\nCollectors are implemented using the same type-safe mechanisms as\n[Options](#Options), the only differences are the lack of dependency handlers\nand default values, since you can add default values in the modules build step.\n\nYou may add collector values via the project configuration. However, since these\ncollector values cannot be overwritten by inheriting configurations use this with care.\n\n```xml\n\n \n value\n value2\n \n\n```\n\nYou can discover all the available collectors in your repository using\n`lbuild discover --developer`.\n\n\n#### CallableCollector\n\nThis collector allows you to collect callable objects, that the post-build step\ncan execute. This can be useful for providing specializations to the post-build\nmodule without it needing to know how they work.\n\n```python\ncollector = CallableCollector(name=\"collector-name\",\n description=\"callable\")\n```\n\n\n#### StringCollector\n\nSee [StringOption](#StringOption) for documentation.\n\n```python\ncollector = StringCollector(name=\"collector-name\",\n description=\"string\",\n validate=validate_function)\n```\n\n\n#### PathCollector\n\nSee [PathOption](#PathOption) for documentation.\n\n```python\ncollector = PathCollector(name=\"collector-name\",\n description=\"path\",\n empty_ok=False,\n absolute=False)\n```\n\n\n#### BooleanCollector\n\nSee [BooleanOption](#BooleanOption) for documentation.\n\n```python\ncollector = BooleanCollector(name=\"collector-name\",\n description=\"boolean\")\n```\n\n\n#### NumericCollector\n\nSee [NumericOption](#NumericOption) for documentation.\n\n```python\ncollector = NumericCollector(name=\"collector-name\",\n description=\"numeric\",\n minimum=0,\n maximum=100)\n```\n\n\n#### EnumerationCollector\n\nSee [EnumerationOption](#EnumerationOption) for documentation.\n\n```python\ncollector = EnumerationCollector(name=\"collector-name\",\n description=\"enumeration\",\n enumeration=enumeration)\n```\n\n\n### Aliases\n\n*lbuild* aliases are mappings from one lbuild node to another. They are useful\nfor gracefully dealing with renaming or moving nodes in your lbuild module tree.\nAliases will print a warning when accessed showing the alias description. Each\nalias must have a unique name within their parent repository or module.\n\nAliases can be used for any type of node that you want forwarded. You can also\nadd aliases that do not have a destination and will raise an exception with the\nalias description. This allows you to remove lbuild nodes while providing\ndetails for a workaround.\n\n```python\ndef prepare(module, options):\n # Move option in this module\n module.add_module(Option(name=\"option\"))\n # Forward the old option to the new option\n module.add_alias(Alias(name=\"option-alias\",\n destination=\"option\",\n description=\"Renamed for clarity.\"))\n # Instead of silently failing, you can provide a detailed description\n # about why the node was removed and what the workaround is.\n module.add_alias(Alias(name=\"removed-alias\",\n description=\"Removed. Workaround: ...\"))\n # You alias any type to any other node.\n module.add_alias(Alias(name=\"submodule-alias\",\n destination=\":other-module:submodule\"\n description=\"Removed. Workaround: ...\"))\n\ndef build(env):\n # Will show a warning (once) that the alias has been moved\n exists = env.has_option(\":module:option-alias\")\n # Accesses :module:option instead\n value = env[\":module:option-alias\"]\n # This will raise an exception with the alias description\n value = env[\":module:removed-alias\"]\n # will check for :other-module:submodule instead\n value = env.has_module[\":module:submodule-alias\"]\n```\n\n\n### Jinja2 Configuration\n\n*lbuild* uses the [Jinja2 template engine][jinja2] with the following global\nconfiguration:\n\n- Line statements start with `%% statement`.\n- Line comments start with `%# comment`.\n- Undefined variables throw an exception instead of being ignored.\n- Global extensions: `jinja2.ext.do`.\n- Global substitutions are:\n + `time`: `strftime(\"%d %b %Y, %H:%M:%S\")`\n + `options`: an option resolver in the context of the current module.\n\n\n### Name Resolution\n\n*lbuild* manages repositories, modules and options in a tree structure and\nserializes identification into unique string using `:` as hierarchy delimiters.\nAny identifier provided via the command line, configuration, repository or\nmodule files use the same resolver, which allows using *partially-qualified*\nidentifiers. In addition, globbing for multiple identifiers using fnmatch\nsemantics is supported.\n\nThe following rules for resolving identifiers apply:\n\n1. A fully-qualified identifier specifies all parts: `repo:module:option`.\n2. A partially-qualified identifier adds fnmatch wildcarts: `*:m.dule:opt*`.\n3. `*` wildcarts for entire hierarchies can be ommitted: `::option`\n4. A special wildcart is `:**`, which globs for everything below the current\n hierarchy level: `repo:**` selects all in `repo`, `repo:module:**` all in\n `repo:module`, etc.\n5. Wildcarts are resolved in reverse hierarchical order. Therefore, `::option`\n may be unique within the context of `:module`, but not within the entire\n project.\n6. For accessing direct children, you may specify their name without any\n delimiters: `option` within the context of `:module` will resolve to\n `:module:option`.\n\nPartial identifiers were introduced to reduce verbosity and aid refactoring,\nit is therefore recommended to:\n\n1. Omit the repository name for accessing modules and options within the same\n repository.\n2. Accessing a module's options with their name directly.\n\n\n### Execution order\n\n*lbuild* executes in this order:\n\n1. `repository:init()`\n2. Create repository options\n3. `repository:prepare(repo-options)`\n4. Find all modules in repositories\n5. `module:init()`\n6. `module:prepare(repo-options)`\n7. Create module options\n8. Resolve module dependencies\n9. `module:validate(env)` submodules-first, *optional*\n10. `module:build(env)` submodules-first\n11. `repo:build(env)`: *optional*\n12. `module:post_build(env)`: submodules-first, *optional*\n\n\n[modm]: https://modm.io/how-modm-works\n[taproot]: https://github.com/uw-advanced-robotics/taproot\n[outpost]: https://github.com/DLR-RY/outpost-core\n[jinja2]: http://jinja.pocoo.org\n[python]: https://www.python.org\n[pypi]: https://pypi.org/project/lbuild\n[salkinium]: https://github.com/salkinium\n[travis]: https://travis-ci.org/modm-io/lbuild\n[travis-svg]: https://travis-ci.org/modm-io/lbuild.svg?branch=develop\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/modm-io/lbuild", "keywords": "library builder generator", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "lbuild", "package_url": "https://pypi.org/project/lbuild/", "platform": "", "project_url": "https://pypi.org/project/lbuild/", "project_urls": { "Homepage": "https://github.com/modm-io/lbuild" }, "release_url": "https://pypi.org/project/lbuild/1.21.4/", "requires_dist": [ "lxml", "jinja2", "gitpython (>=2.1.11)", "anytree (>=2.6.0)", "testfixtures ; extra == 'test'", "coverage ; extra == 'test'" ], "requires_python": ">=3.5.0", "summary": "Generic, modular code generator using the Jinja2 template engine.", "version": "1.21.4", "yanked": false, "yanked_reason": null }, "last_serial": 12888894, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "b9c10042a79b46e06e153e7889267398", "sha256": "63648eff40b9720f7dca5cf3bdbe186ec5569500de5fc6d4246fe4538814d0c5" }, "downloads": -1, "filename": "lbuild-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b9c10042a79b46e06e153e7889267398", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 48702, "upload_time": "2018-09-10T15:50:37", "upload_time_iso_8601": "2018-09-10T15:50:37.347342Z", "url": "https://files.pythonhosted.org/packages/c9/bf/b275f7940c0568762a3d1b9d77293ced143dae1dd8945cba07a04a673e6d/lbuild-1.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ae9c2e0ee1682e0ba4e66a50d89b9c59", "sha256": "bc09bcff1a0e44325fc954e02bea61cb9a62f0dbb77576bedcb4e14ba8f6be16" }, "downloads": -1, "filename": "lbuild-1.0.3.tar.gz", "has_sig": false, "md5_digest": "ae9c2e0ee1682e0ba4e66a50d89b9c59", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 54533, "upload_time": "2018-09-10T15:50:38", "upload_time_iso_8601": "2018-09-10T15:50:38.924176Z", "url": "https://files.pythonhosted.org/packages/62/35/b0f8401e6c1a80d6806f33b934a7d89e3704d58ebd57fbf641fac86e93e8/lbuild-1.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "498617c53487e62749698d98716e36ea", "sha256": "0bbd411d6fedaaf9fa89f70c3a160528dab18a92bed1839bb530131d46354b70" }, "downloads": -1, "filename": "lbuild-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "498617c53487e62749698d98716e36ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 48685, "upload_time": "2018-09-11T07:47:42", "upload_time_iso_8601": "2018-09-11T07:47:42.570954Z", "url": "https://files.pythonhosted.org/packages/e9/b1/3037611af15fe18d8d68d27b37308c4c0ffb54fb371d39f49c4a511ff7f2/lbuild-1.0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d95f88878c04f016b47511326dca5431", "sha256": "723d5c94bba4108717643d5b9810a6b6228f10a408a899f1aeab7a947134fdc1" }, "downloads": -1, "filename": "lbuild-1.0.4.tar.gz", "has_sig": false, "md5_digest": "d95f88878c04f016b47511326dca5431", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 54519, "upload_time": "2018-09-11T07:47:44", "upload_time_iso_8601": "2018-09-11T07:47:44.485974Z", "url": "https://files.pythonhosted.org/packages/5b/43/9c13630c07c43bc0f6c33f6696026467ff3d9daa937efd7acf4fa415fcd3/lbuild-1.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "a805303d6a3c1cc0f898b9673395f82b", "sha256": "ff088dc449abeba645550f49c3c45f3d7fbcf335728c79a94dca2456aa97d23c" }, "downloads": -1, "filename": "lbuild-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a805303d6a3c1cc0f898b9673395f82b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 48763, "upload_time": "2018-09-11T10:00:42", "upload_time_iso_8601": "2018-09-11T10:00:42.282884Z", "url": "https://files.pythonhosted.org/packages/9e/3f/4285c1de6f33403cb682353cfd5be5d2f27760553be64af4654309db1d25/lbuild-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b6a18ec08d941940c12956ec681bcbe1", "sha256": "e27efb5279f89855b073456bb3ce97e3affe985ef2a6eb4ab3b537b70ba31329" }, "downloads": -1, "filename": "lbuild-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b6a18ec08d941940c12956ec681bcbe1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 54586, "upload_time": "2018-09-11T10:00:43", "upload_time_iso_8601": "2018-09-11T10:00:43.803179Z", "url": "https://files.pythonhosted.org/packages/c9/d7/dc94686992fc77547e3b8f9b1656ddcf78b834b61ca260a794cc30c113f8/lbuild-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "e2e9923dbe5d7f01026844f8fffe8c87", "sha256": "5afd245767bba5530f8e521328433c6856b0e367fcc0377656924a2e93c0cdad" }, "downloads": -1, "filename": "lbuild-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e2e9923dbe5d7f01026844f8fffe8c87", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 48773, "upload_time": "2018-09-13T12:27:54", "upload_time_iso_8601": "2018-09-13T12:27:54.186615Z", "url": "https://files.pythonhosted.org/packages/0b/f8/d855319d3648abe4702c402143941f6b833a648655e3111b8440aa1bbbad/lbuild-1.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f08eb04c65f83bda3e904f353c2ca4d3", "sha256": "242b0eb3c9e60c03f48f7bb5a11a8d8a6a3a32f60b60de52eb090fc5aa11c30b" }, "downloads": -1, "filename": "lbuild-1.1.1.tar.gz", "has_sig": false, "md5_digest": "f08eb04c65f83bda3e904f353c2ca4d3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 54605, "upload_time": "2018-09-13T12:27:55", "upload_time_iso_8601": "2018-09-13T12:27:55.970761Z", "url": "https://files.pythonhosted.org/packages/cd/29/173a062dfca566f60eac02692323a253d4f89d3d7d689620d3da8b8d7f0e/lbuild-1.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.10.0": [ { "comment_text": "", "digests": { "md5": "a28f869b96e0b48f71b8f8260774845e", "sha256": "e30bc8f3a48e2bb0df2a9bb15af6ad30684ffdf0cd5a2e416c67a7927f439a89" }, "downloads": -1, "filename": "lbuild-1.10.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a28f869b96e0b48f71b8f8260774845e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 62586, "upload_time": "2019-03-13T14:56:36", "upload_time_iso_8601": "2019-03-13T14:56:36.827318Z", "url": "https://files.pythonhosted.org/packages/d6/a8/bc052df29dfb6250880fd88238a0bd60d8d19c953fa748b925fcc14b051c/lbuild-1.10.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "89e50cebfcd35bce09e4d8d31e6e67bb", "sha256": "f3ef3d2cc154d478896a56189b3bd1de115f312009417cd1d209cac1e1d1377e" }, "downloads": -1, "filename": "lbuild-1.10.0.tar.gz", "has_sig": false, "md5_digest": "89e50cebfcd35bce09e4d8d31e6e67bb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 74953, "upload_time": "2019-03-13T14:56:38", "upload_time_iso_8601": "2019-03-13T14:56:38.597504Z", "url": "https://files.pythonhosted.org/packages/19/85/367612ead6ddd1f97f7a923569d986364f8a179b4eb4e616d95b4410ff08/lbuild-1.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.10.1": [ { "comment_text": "", "digests": { "md5": "d010087f6d12df7664f7e41320da2ccc", "sha256": "1bc7ed87fee9bd84a0dce5dffb9fce73f04a73b3556b2c9c9bd4d53adb69f807" }, "downloads": -1, "filename": "lbuild-1.10.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d010087f6d12df7664f7e41320da2ccc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 62606, "upload_time": "2019-03-14T17:30:16", "upload_time_iso_8601": "2019-03-14T17:30:16.550785Z", "url": "https://files.pythonhosted.org/packages/cf/bf/93abcd33b460bee3b341b49234e0ce49b8bf19d2acf3d4db464d677c481e/lbuild-1.10.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d5d37020427d656ad850f4607f01c956", "sha256": "209a564c0be336afa7a832ebeacb0db5c98bce2861ebaaceb27bf854499243b5" }, "downloads": -1, "filename": "lbuild-1.10.1.tar.gz", "has_sig": false, "md5_digest": "d5d37020427d656ad850f4607f01c956", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 74970, "upload_time": "2019-03-14T17:30:18", "upload_time_iso_8601": "2019-03-14T17:30:18.283980Z", "url": "https://files.pythonhosted.org/packages/be/97/1e73f63bd822b915f877013823d7e44f02d24663bd28dc94f8887decb86e/lbuild-1.10.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.10.2": [ { "comment_text": "", "digests": { "md5": "6282fcce8fa43ec6e82254f2544494a6", "sha256": "f263f264afb06447d7772abb385e1accb8e65df0cea3e4ba93dd858997463401" }, "downloads": -1, "filename": "lbuild-1.10.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6282fcce8fa43ec6e82254f2544494a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 62628, "upload_time": "2019-03-14T20:44:24", "upload_time_iso_8601": "2019-03-14T20:44:24.852764Z", "url": "https://files.pythonhosted.org/packages/ba/d4/d72ac0bf95b158304435339f1a18df01d63d20e0dad6e9dbbe9a762f8b9d/lbuild-1.10.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e6d57d3f2a756b16ca0e7189783b9dcd", "sha256": "403ad158c58648213b61ed65a7199e446719357339a2855181b30d6bf9d358bd" }, "downloads": -1, "filename": "lbuild-1.10.2.tar.gz", "has_sig": false, "md5_digest": "e6d57d3f2a756b16ca0e7189783b9dcd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 74991, "upload_time": "2019-03-14T20:44:26", "upload_time_iso_8601": "2019-03-14T20:44:26.526786Z", "url": "https://files.pythonhosted.org/packages/05/89/d042c3dacaabe499bb6fd371e411838363b67ba5c7e077d8d710931d1cc9/lbuild-1.10.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.10.3": [ { "comment_text": "", "digests": { "md5": "d219f4279536c6eb9d4eb721cd09815e", "sha256": "9d36acaa27ea4af1f2c712faaa83d3850015c0349fe1a0d21edb3629537e7735" }, "downloads": -1, "filename": "lbuild-1.10.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d219f4279536c6eb9d4eb721cd09815e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 62634, "upload_time": "2019-03-19T17:03:50", "upload_time_iso_8601": "2019-03-19T17:03:50.963582Z", "url": "https://files.pythonhosted.org/packages/5e/7b/bab9fe1cafc5afc8f03f8cc8362e7637c6daeac9e0b4710656ea6ba31f7a/lbuild-1.10.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3d2844e0a92e2362101ea82671880670", "sha256": "7bf2653934e959ba17f0d3467b20e1f0f9db0d6d6110b31a416c84b01bb5f0f8" }, "downloads": -1, "filename": "lbuild-1.10.3.tar.gz", "has_sig": false, "md5_digest": "3d2844e0a92e2362101ea82671880670", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 75005, "upload_time": "2019-03-19T17:03:52", "upload_time_iso_8601": "2019-03-19T17:03:52.586781Z", "url": "https://files.pythonhosted.org/packages/d2/b9/d61c6cdbfbf20dc254c844503eae16f3dc31d574b011b872c1d756b2b453/lbuild-1.10.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.10.4": [ { "comment_text": "", "digests": { "md5": "ff2dd80b85fae7388420259d96f0e1a8", "sha256": "650cb887f2768287e26cf01d05e423ff46be6a542001ca00ae521df60e473e21" }, "downloads": -1, "filename": "lbuild-1.10.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ff2dd80b85fae7388420259d96f0e1a8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 62636, "upload_time": "2019-04-22T15:53:28", "upload_time_iso_8601": "2019-04-22T15:53:28.415843Z", "url": "https://files.pythonhosted.org/packages/b0/ca/f2259f3c01b5fd5d68fd00392ee37b8fef85914d2397d963803c195c33ad/lbuild-1.10.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0170ce1d62343e2177fd52efc312dab2", "sha256": "c6e679c66957fdbdb98604725f8af61b5c7d82aa76eb55728d0f828b4665d8da" }, "downloads": -1, "filename": "lbuild-1.10.4.tar.gz", "has_sig": false, "md5_digest": "0170ce1d62343e2177fd52efc312dab2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 75005, "upload_time": "2019-04-22T15:53:29", "upload_time_iso_8601": "2019-04-22T15:53:29.893215Z", "url": "https://files.pythonhosted.org/packages/a7/1d/3bde03548f10bb8f557dc747df00c9eff4151cbd02a7e5a25c5147fae229/lbuild-1.10.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.0": [ { "comment_text": "", "digests": { "md5": "04490d83b826f18f0f2da72d30be8624", "sha256": "a49445611724c3dc48ddda0bf69cc9e4cb003bdbcf7c01201112c45c061b3dfd" }, "downloads": -1, "filename": "lbuild-1.11.0-py3-none-any.whl", "has_sig": false, "md5_digest": "04490d83b826f18f0f2da72d30be8624", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 66335, "upload_time": "2019-05-05T02:27:49", "upload_time_iso_8601": "2019-05-05T02:27:49.868395Z", "url": "https://files.pythonhosted.org/packages/55/1d/88d3c377efe3524c505fe2c2b73bf64847e886fa96ca2cc2e99491678c94/lbuild-1.11.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b5a73d31894dab781b196a0b12a1c08a", "sha256": "35ba865c8e5577d704f6e3ba38ea05b0c2b98e67cc7782101ce22325c6e8ab1b" }, "downloads": -1, "filename": "lbuild-1.11.0.tar.gz", "has_sig": false, "md5_digest": "b5a73d31894dab781b196a0b12a1c08a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 78663, "upload_time": "2019-05-05T02:27:51", "upload_time_iso_8601": "2019-05-05T02:27:51.456410Z", "url": "https://files.pythonhosted.org/packages/50/a3/c169018c9a7e26b53e7c1730101bd5877005d10ed8a7eb6b55667c6b5051/lbuild-1.11.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.1": [ { "comment_text": "", "digests": { "md5": "b4d2194fe3872dc7279d93baa6272f8d", "sha256": "2789949f63b1b249bc82ed693ff4f97564bfbe7a04a2446f14c6e28604a8c5a2" }, "downloads": -1, "filename": "lbuild-1.11.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b4d2194fe3872dc7279d93baa6272f8d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 66421, "upload_time": "2019-05-05T19:19:32", "upload_time_iso_8601": "2019-05-05T19:19:32.279927Z", "url": "https://files.pythonhosted.org/packages/f3/ec/223923e2d74f34263038cfdc964e7f2a61cd4d72814b52e3388ac65d9f08/lbuild-1.11.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "584c44d12d0e61b74f3795b7aff41bba", "sha256": "96d9bb2c647890430de5d559ca8ee7eec32f52525d2573799743cec9edf5c3a5" }, "downloads": -1, "filename": "lbuild-1.11.1.tar.gz", "has_sig": false, "md5_digest": "584c44d12d0e61b74f3795b7aff41bba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 78748, "upload_time": "2019-05-05T19:19:33", "upload_time_iso_8601": "2019-05-05T19:19:33.845484Z", "url": "https://files.pythonhosted.org/packages/82/11/566677144f3a882e18d43f3dc5a7c042f2042254fbb1506b3da0e20ce549/lbuild-1.11.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.2": [ { "comment_text": "", "digests": { "md5": "4447d4fcbbfb9976853477e9ef598745", "sha256": "3a184cd2c7f2951977f48f59bc6bf4d2b9285be6a85b56edae2c5bb06e640342" }, "downloads": -1, "filename": "lbuild-1.11.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4447d4fcbbfb9976853477e9ef598745", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 66430, "upload_time": "2019-05-06T14:30:47", "upload_time_iso_8601": "2019-05-06T14:30:47.696154Z", "url": "https://files.pythonhosted.org/packages/dd/5a/08f7578d9f7af28ec97501064822618afd5f24d32c97baaf39eb876ba15a/lbuild-1.11.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "137de0335e89fb44460bc324b432b348", "sha256": "006c02c14509f8d0d3adeb1c61050d8486e066f3ae96eac9ccd1f62669cc16e9" }, "downloads": -1, "filename": "lbuild-1.11.2.tar.gz", "has_sig": false, "md5_digest": "137de0335e89fb44460bc324b432b348", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 78774, "upload_time": "2019-05-06T14:30:49", "upload_time_iso_8601": "2019-05-06T14:30:49.234774Z", "url": "https://files.pythonhosted.org/packages/fe/f3/29a4d306c04ede10208f38e82ef79d57b1490f46bdbde9b6bd6f2fb026e5/lbuild-1.11.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.3": [ { "comment_text": "", "digests": { "md5": "693e6c81ad71e4deb11d178249215132", "sha256": "d472179e3a542bce13b88f6715e4213f89628dd8539550cf057366f936d46c2e" }, "downloads": -1, "filename": "lbuild-1.11.3-py3-none-any.whl", "has_sig": false, "md5_digest": "693e6c81ad71e4deb11d178249215132", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 66508, "upload_time": "2019-05-06T21:04:20", "upload_time_iso_8601": "2019-05-06T21:04:20.043370Z", "url": "https://files.pythonhosted.org/packages/16/f1/56745a0c95a129f1fd132a56d6f61ea2c0ebd72620c827624046f6fda4d7/lbuild-1.11.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "165c10d4345b2b3658e82dc928a6c740", "sha256": "5602edfe61ea6f1389252ace6fc48e54af6befdb9b2975694f76784a3d4dd161" }, "downloads": -1, "filename": "lbuild-1.11.3.tar.gz", "has_sig": false, "md5_digest": "165c10d4345b2b3658e82dc928a6c740", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 78870, "upload_time": "2019-05-06T21:04:21", "upload_time_iso_8601": "2019-05-06T21:04:21.922277Z", "url": "https://files.pythonhosted.org/packages/49/fc/74fec06bee027347a4de0a6d3e295f813decfa429221c977a927ceb8eddd/lbuild-1.11.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.4": [ { "comment_text": "", "digests": { "md5": "ef6c79f248a02fba39c9a538e5181bd6", "sha256": "e1d34dd47eee070d9e54b5d11c4ad0146edfd1eb1674e84d7a7928fe2c32e19c" }, "downloads": -1, "filename": "lbuild-1.11.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ef6c79f248a02fba39c9a538e5181bd6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 66746, "upload_time": "2019-05-08T23:17:53", "upload_time_iso_8601": "2019-05-08T23:17:53.950141Z", "url": "https://files.pythonhosted.org/packages/1e/a3/8ce7747336bfa62c56dadf5c7e184e22762ad3954e98d9c8b62f4c97d3da/lbuild-1.11.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "082d5f10f7fb0254248da69125b04761", "sha256": "274dbdacdafe18c8ac03fe054112e50948f4b3998748f6746b1d3b3214ce7532" }, "downloads": -1, "filename": "lbuild-1.11.4.tar.gz", "has_sig": false, "md5_digest": "082d5f10f7fb0254248da69125b04761", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 79089, "upload_time": "2019-05-08T23:17:55", "upload_time_iso_8601": "2019-05-08T23:17:55.750879Z", "url": "https://files.pythonhosted.org/packages/0f/2e/b2a9dd72f87be4e5bc1121e64fbf60e98f8761e72054142828a7874eac81/lbuild-1.11.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.5": [ { "comment_text": "", "digests": { "md5": "42eac6a6f5ceebf2fb9db89dfa2f325f", "sha256": "81009f5922ea8b28cd20d53f4cc9158bb1ac31495bccbca40fc65e45a4cf6b95" }, "downloads": -1, "filename": "lbuild-1.11.5-py3-none-any.whl", "has_sig": false, "md5_digest": "42eac6a6f5ceebf2fb9db89dfa2f325f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 67234, "upload_time": "2019-07-04T20:49:53", "upload_time_iso_8601": "2019-07-04T20:49:53.328233Z", "url": "https://files.pythonhosted.org/packages/91/4a/1d4ce4008497004f039e7704c7d5f355f2ef3eff4cdbc6d8cbb9793de6dd/lbuild-1.11.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7aca4f8e582d51442d558e65270766cd", "sha256": "2cc7f746f570395b7851f959c1cae25cc8925ce534622de28a2f6007bb658dc6" }, "downloads": -1, "filename": "lbuild-1.11.5.tar.gz", "has_sig": false, "md5_digest": "7aca4f8e582d51442d558e65270766cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 79990, "upload_time": "2019-07-04T20:49:55", "upload_time_iso_8601": "2019-07-04T20:49:55.176850Z", "url": "https://files.pythonhosted.org/packages/b8/9b/3a2a599bcdd08d6f4ae93494bb1959f16b828243553bb8f8d5adc9722743/lbuild-1.11.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.6": [ { "comment_text": "", "digests": { "md5": "d286b0254efd90595a8fc51e1c3f7026", "sha256": "0f5a08a4e061ce82e34d13ac8efe666fe7eb5e855de11497a1d97e46d2423ba8" }, "downloads": -1, "filename": "lbuild-1.11.6-py3-none-any.whl", "has_sig": false, "md5_digest": "d286b0254efd90595a8fc51e1c3f7026", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 67244, "upload_time": "2019-07-05T00:17:09", "upload_time_iso_8601": "2019-07-05T00:17:09.706791Z", "url": "https://files.pythonhosted.org/packages/2c/0c/04939c5dee1d5c8e245b3e2d89bbc6891d1e45570bdc0e7c07cbbe613e95/lbuild-1.11.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "042d5b296c9e7f361f71c9ad2b6f5823", "sha256": "5ec2480184aa3ff13087a875b408ded58b123b3dd47d6a956bcbe82699c777af" }, "downloads": -1, "filename": "lbuild-1.11.6.tar.gz", "has_sig": false, "md5_digest": "042d5b296c9e7f361f71c9ad2b6f5823", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 79999, "upload_time": "2019-07-05T00:17:11", "upload_time_iso_8601": "2019-07-05T00:17:11.881409Z", "url": "https://files.pythonhosted.org/packages/a9/3f/6298f60d2519d02b538d996fe5edfdcbce56e1b4121853bf70e626c3e3ab/lbuild-1.11.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.7": [ { "comment_text": "", "digests": { "md5": "8eea462b94b066eeb87f4c0df135f518", "sha256": "857f75b00dee1f0a50ae396b9511aec76e7df85c48f3366de29a6d575c45395d" }, "downloads": -1, "filename": "lbuild-1.11.7-py3-none-any.whl", "has_sig": false, "md5_digest": "8eea462b94b066eeb87f4c0df135f518", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 67299, "upload_time": "2019-07-07T14:43:31", "upload_time_iso_8601": "2019-07-07T14:43:31.065818Z", "url": "https://files.pythonhosted.org/packages/0a/7f/24faf3db1f1b0f43c5f47d181f1e124bcf0c8b3fdea745e5a180c10d02d0/lbuild-1.11.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7ee4e617e38313aadfd6ab71b6a72de4", "sha256": "3fb6eeb48d59b4b5ab08245e75d63fb6dd24241447ad5739bfae68c47b30857e" }, "downloads": -1, "filename": "lbuild-1.11.7.tar.gz", "has_sig": false, "md5_digest": "7ee4e617e38313aadfd6ab71b6a72de4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 80067, "upload_time": "2019-07-07T14:43:33", "upload_time_iso_8601": "2019-07-07T14:43:33.420147Z", "url": "https://files.pythonhosted.org/packages/7f/27/f72a4d9833335fcf6db23c9ee9d510b0206d33a4f264c1b025113e35ed22/lbuild-1.11.7.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.8": [ { "comment_text": "", "digests": { "md5": "24bea5ff325b12fdcbe82881dd7b7ff1", "sha256": "4c7dee1b37ade2bf889584de874d6ee1c3535aa486c2935c5f8d65fbaf89cc0a" }, "downloads": -1, "filename": "lbuild-1.11.8-py3-none-any.whl", "has_sig": false, "md5_digest": "24bea5ff325b12fdcbe82881dd7b7ff1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 67328, "upload_time": "2019-07-07T16:41:10", "upload_time_iso_8601": "2019-07-07T16:41:10.465734Z", "url": "https://files.pythonhosted.org/packages/4d/a0/6d8657d46f34624f0f3a40d1560423ed12089a786825e3b40fe55e590ab0/lbuild-1.11.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c0bb34204d4c3a413d59cb0c316d64dd", "sha256": "73a26428e8f65fd953c5d71ea07b93bc2a8d086cf02c002c1984499477c3764c" }, "downloads": -1, "filename": "lbuild-1.11.8.tar.gz", "has_sig": false, "md5_digest": "c0bb34204d4c3a413d59cb0c316d64dd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 80078, "upload_time": "2019-07-07T16:41:12", "upload_time_iso_8601": "2019-07-07T16:41:12.911099Z", "url": "https://files.pythonhosted.org/packages/57/c6/f3ed83489a3e5e4fbe75f23b59aec6ec798792ee42d277e16451998c0350/lbuild-1.11.8.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12.0": [ { "comment_text": "", "digests": { "md5": "e12dd42f51f3cef9cb5838b9e60355f5", "sha256": "dab31097d683669f0c3eecd62250af590330617ee3ed8c4f4dc3a36a09919279" }, "downloads": -1, "filename": "lbuild-1.12.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e12dd42f51f3cef9cb5838b9e60355f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 67883, "upload_time": "2019-07-08T18:29:11", "upload_time_iso_8601": "2019-07-08T18:29:11.703303Z", "url": "https://files.pythonhosted.org/packages/3f/78/6a8c75fca956254f192216a51931e02f03921d554785844453255745daf2/lbuild-1.12.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "19629c27dee3f7f5b594478cec6d7305", "sha256": "808955c50069784ddd61bf8a67ab0244e077db215cfd6f42fd7008f2a81da8aa" }, "downloads": -1, "filename": "lbuild-1.12.0.tar.gz", "has_sig": false, "md5_digest": "19629c27dee3f7f5b594478cec6d7305", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 80779, "upload_time": "2019-07-08T18:29:13", "upload_time_iso_8601": "2019-07-08T18:29:13.694023Z", "url": "https://files.pythonhosted.org/packages/9a/0c/967dcb73cc64d618e117bf839f176a092074754423e5dbb644dbf580986c/lbuild-1.12.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12.1": [ { "comment_text": "", "digests": { "md5": "b52ea1c3a1a5326d32cb682754036757", "sha256": "fca73cdc82a4e70dcb0b0a090a36698ce418a2a7458a602df7428e132c2de885" }, "downloads": -1, "filename": "lbuild-1.12.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b52ea1c3a1a5326d32cb682754036757", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68183, "upload_time": "2019-07-10T22:40:38", "upload_time_iso_8601": "2019-07-10T22:40:38.595092Z", "url": "https://files.pythonhosted.org/packages/49/a6/ae0a70ea4dd960759d863ab9cf3545cae835e430d07901b061d245e7215c/lbuild-1.12.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "154ecf8cede28e92494187c22a40c4bd", "sha256": "ba991f46719b9c5750d62751e7590af235ba4745caa38bb2b115d031f078ba3d" }, "downloads": -1, "filename": "lbuild-1.12.1.tar.gz", "has_sig": false, "md5_digest": "154ecf8cede28e92494187c22a40c4bd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81060, "upload_time": "2019-07-10T22:40:40", "upload_time_iso_8601": "2019-07-10T22:40:40.698582Z", "url": "https://files.pythonhosted.org/packages/2f/ed/bb2a29fe7a025ed8d78cf08f49a926b36a05863e32cdc32c7eb5ab8002b6/lbuild-1.12.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12.2": [ { "comment_text": "", "digests": { "md5": "dad96d4c7f9b83cb362cfba8ee7c126c", "sha256": "ca9115392e064c8fde16c1892dc6a5418119ec4535a4a3ba952cda169b48d009" }, "downloads": -1, "filename": "lbuild-1.12.2-py3-none-any.whl", "has_sig": false, "md5_digest": "dad96d4c7f9b83cb362cfba8ee7c126c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68204, "upload_time": "2019-07-11T23:09:20", "upload_time_iso_8601": "2019-07-11T23:09:20.980105Z", "url": "https://files.pythonhosted.org/packages/6b/9c/b41e4bfba946536c45b196323254213a40b5cc7deaef23958cad3063c1b0/lbuild-1.12.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d1d00e080c8d2c3268cd01cddb45181d", "sha256": "cdc493cc5fc9f6e03a55cc557e2ce729d742caa77e91dcd2ecda816596b45179" }, "downloads": -1, "filename": "lbuild-1.12.2.tar.gz", "has_sig": false, "md5_digest": "d1d00e080c8d2c3268cd01cddb45181d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81079, "upload_time": "2019-07-11T23:09:23", "upload_time_iso_8601": "2019-07-11T23:09:23.148375Z", "url": "https://files.pythonhosted.org/packages/8a/b9/f1ea5e2a6d5ca1b3dd642fbb69438752f7041d6c350c781ab573921b9b5a/lbuild-1.12.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12.3": [ { "comment_text": "", "digests": { "md5": "d57559dc120e53d5c6dbfa44d6bbf3c1", "sha256": "8718195ab120ec94ead08139aa78dbe5df3e861827f5df3241142fc9627e601a" }, "downloads": -1, "filename": "lbuild-1.12.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d57559dc120e53d5c6dbfa44d6bbf3c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68209, "upload_time": "2019-07-23T19:22:18", "upload_time_iso_8601": "2019-07-23T19:22:18.146328Z", "url": "https://files.pythonhosted.org/packages/e4/44/d94b2def4371245b055473d7aa757bd4dc9fb375817c382b0aea5e1937aa/lbuild-1.12.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8c423ffd1c90c2e9af907015cf1ef987", "sha256": "6a35061335bb14e6c2df6a1c4bf327cfc3aba2fab3096ee2df786b496e93c24f" }, "downloads": -1, "filename": "lbuild-1.12.3.tar.gz", "has_sig": false, "md5_digest": "8c423ffd1c90c2e9af907015cf1ef987", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81119, "upload_time": "2019-07-23T19:22:20", "upload_time_iso_8601": "2019-07-23T19:22:20.515703Z", "url": "https://files.pythonhosted.org/packages/78/d7/b8ae5beec6b8f66872a8f6c437e36332526382f61f242922260767879fcd/lbuild-1.12.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12.4": [ { "comment_text": "", "digests": { "md5": "a7a3ae31092b69bd8fbadf01021c4fca", "sha256": "1db654a0722c2a453e364ea9c3b7306fa438df92fedf08a5aa88806c5f20fa6d" }, "downloads": -1, "filename": "lbuild-1.12.4-py3-none-any.whl", "has_sig": false, "md5_digest": "a7a3ae31092b69bd8fbadf01021c4fca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68231, "upload_time": "2019-07-27T21:56:31", "upload_time_iso_8601": "2019-07-27T21:56:31.344410Z", "url": "https://files.pythonhosted.org/packages/bb/62/7c98bbbc14c7a7b4d501b886da934db20305b6787718be342aca4004c278/lbuild-1.12.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "aba1faa8a3d0665b6f096d83b865aaf4", "sha256": "47b3d6b3153f2ddc4db693f472875a2f311a60269d1282a39f6527a2fbf9019e" }, "downloads": -1, "filename": "lbuild-1.12.4.tar.gz", "has_sig": false, "md5_digest": "aba1faa8a3d0665b6f096d83b865aaf4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81132, "upload_time": "2019-07-27T21:56:33", "upload_time_iso_8601": "2019-07-27T21:56:33.708146Z", "url": "https://files.pythonhosted.org/packages/de/b5/dff136c8653201595e6b83703bdcc2b53b1458e7796ff2620f544af2cf92/lbuild-1.12.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12.5": [ { "comment_text": "", "digests": { "md5": "0c0cb0be94b08583d224726264a60313", "sha256": "81003430fc933b710fb7d0ee83e4f29378aea968a16bca38aac1b643fa1d05fe" }, "downloads": -1, "filename": "lbuild-1.12.5-py3-none-any.whl", "has_sig": false, "md5_digest": "0c0cb0be94b08583d224726264a60313", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68443, "upload_time": "2019-09-22T15:38:02", "upload_time_iso_8601": "2019-09-22T15:38:02.954169Z", "url": "https://files.pythonhosted.org/packages/2c/1e/bc8217cd92a014c74e86f457907f5931064ac9d3d94d58749be403e4bb2b/lbuild-1.12.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bdc2a07dede77b99a65af10db271621a", "sha256": "95413f02451b59f21e221ec2bc6b04c4c7c8be6c9759c22bace2299100fd33f1" }, "downloads": -1, "filename": "lbuild-1.12.5.tar.gz", "has_sig": false, "md5_digest": "bdc2a07dede77b99a65af10db271621a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 80431, "upload_time": "2019-09-22T15:38:05", "upload_time_iso_8601": "2019-09-22T15:38:05.693927Z", "url": "https://files.pythonhosted.org/packages/a4/fd/be4a1ebd8533390960de1c968a166dbdea62c1edd40cd3dc5dcd5a2c6ac0/lbuild-1.12.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.13.0": [ { "comment_text": "", "digests": { "md5": "a4e9d7b89ad1de60022e1a88dd8951a7", "sha256": "d10e2e659e2f8f20b4b184b32ee67f4747180077b29908b8790db6e0a3ac554a" }, "downloads": -1, "filename": "lbuild-1.13.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a4e9d7b89ad1de60022e1a88dd8951a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68703, "upload_time": "2019-10-23T17:18:08", "upload_time_iso_8601": "2019-10-23T17:18:08.648447Z", "url": "https://files.pythonhosted.org/packages/fe/bd/eae4a1870afe8569a20b20ddb59054af707c699b550a68e835f5a1917997/lbuild-1.13.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "81b60503a27947da4415a421693710f0", "sha256": "c77ca84f44a1f733ee3e56a2c2ef0cd41badb7a8a85c2b120c86d41ff677f6b5" }, "downloads": -1, "filename": "lbuild-1.13.0.tar.gz", "has_sig": false, "md5_digest": "81b60503a27947da4415a421693710f0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 80691, "upload_time": "2019-10-23T17:18:10", "upload_time_iso_8601": "2019-10-23T17:18:10.764566Z", "url": "https://files.pythonhosted.org/packages/19/e2/cc7f22ff15e13b28fc5ed9a503160f9ec954a575a732cb606a441a9dfc33/lbuild-1.13.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.13.1": [ { "comment_text": "", "digests": { "md5": "ff8c05531f95675a12eb1f04ac0c8fe6", "sha256": "3b229a20ff2ab6c89f85755a19063ab2bee1ec0a7d27171cb112ef5a8a0f7d89" }, "downloads": -1, "filename": "lbuild-1.13.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ff8c05531f95675a12eb1f04ac0c8fe6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68728, "upload_time": "2020-03-18T04:40:15", "upload_time_iso_8601": "2020-03-18T04:40:15.300981Z", "url": "https://files.pythonhosted.org/packages/65/a1/3b4094cd84b60fc9bb687f9a484cbec242e651bde7c7a3df611c183d09d8/lbuild-1.13.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "137511569eb20f724b2b25ab5aa3a7af", "sha256": "a0b2dc048e3e1d8fc2818c3dbcd59218f439ca97a6a909e00f0c0bcff651d993" }, "downloads": -1, "filename": "lbuild-1.13.1.tar.gz", "has_sig": false, "md5_digest": "137511569eb20f724b2b25ab5aa3a7af", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81116, "upload_time": "2020-03-18T04:40:17", "upload_time_iso_8601": "2020-03-18T04:40:17.471278Z", "url": "https://files.pythonhosted.org/packages/60/09/d2c3cd496127e50a7972110e5e2b583607b9eb310615e8b9c07ca0eeaade/lbuild-1.13.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.13.2": [ { "comment_text": "", "digests": { "md5": "081fdca19a7b1d95aafa646adb36cff5", "sha256": "104cb35edcd8a7d82b3ce6807b9c5d28bc29e198063a7f6c003e4ff092e41eea" }, "downloads": -1, "filename": "lbuild-1.13.2-py3-none-any.whl", "has_sig": false, "md5_digest": "081fdca19a7b1d95aafa646adb36cff5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68749, "upload_time": "2020-03-21T18:21:46", "upload_time_iso_8601": "2020-03-21T18:21:46.860955Z", "url": "https://files.pythonhosted.org/packages/b3/37/bde73f2a78545da75d1d455b2d763d19a3f601aba9bc3af5288dc5c3d082/lbuild-1.13.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d8d06e2e779f8ec7b0e6ed94d00ecd8f", "sha256": "b419b2aff826206cf6506bfff6777d5025874c31c1f92799f8789c580886000e" }, "downloads": -1, "filename": "lbuild-1.13.2.tar.gz", "has_sig": false, "md5_digest": "d8d06e2e779f8ec7b0e6ed94d00ecd8f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81138, "upload_time": "2020-03-21T18:21:48", "upload_time_iso_8601": "2020-03-21T18:21:48.946831Z", "url": "https://files.pythonhosted.org/packages/10/5e/c5a314bcc65a7ce43eca77fc3652698b15501f25f2250630f15ed6e6d4a2/lbuild-1.13.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.13.3": [ { "comment_text": "", "digests": { "md5": "c2986602d10b8f84900a03715167493c", "sha256": "60a5550cdf40f132e940eade735323166d7bf74cc4f1427ad612f0d8037bc1a2" }, "downloads": -1, "filename": "lbuild-1.13.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c2986602d10b8f84900a03715167493c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68758, "upload_time": "2020-03-22T11:23:29", "upload_time_iso_8601": "2020-03-22T11:23:29.890162Z", "url": "https://files.pythonhosted.org/packages/92/49/ed2a245baeaa9926b40ce24ec425e62a77fe0aefa9a14f951335f6997150/lbuild-1.13.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "947be449630a94130fee760907783a70", "sha256": "8a4146750d820ddfc15d06275d4bed569c37c882f9c2247ed6c20b6cef6c9b75" }, "downloads": -1, "filename": "lbuild-1.13.3.tar.gz", "has_sig": false, "md5_digest": "947be449630a94130fee760907783a70", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81145, "upload_time": "2020-03-22T11:23:31", "upload_time_iso_8601": "2020-03-22T11:23:31.938584Z", "url": "https://files.pythonhosted.org/packages/45/75/3e898c869f9d2da99c8e216bd0be3eda463f7cb7c47b544b258ada4548aa/lbuild-1.13.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.13.4": [ { "comment_text": "", "digests": { "md5": "6d5c5d0ff6b0d13b7b39c64dcbd22895", "sha256": "2567e2b545147e40a858936bd866f12d8d7f16e468a04ba3624a2919264fb068" }, "downloads": -1, "filename": "lbuild-1.13.4-py3-none-any.whl", "has_sig": false, "md5_digest": "6d5c5d0ff6b0d13b7b39c64dcbd22895", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68866, "upload_time": "2020-04-30T15:53:38", "upload_time_iso_8601": "2020-04-30T15:53:38.618121Z", "url": "https://files.pythonhosted.org/packages/6a/de/1f1a11819090f3fc9d100451b75411e287f91fd2840697d604f441357e84/lbuild-1.13.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "735b90015199084ed28c255fe9296a7d", "sha256": "0905f6b047bbdaaf2bc71f9e1f910cf1bd9f42384579e3a68c718eb005aa535c" }, "downloads": -1, "filename": "lbuild-1.13.4.tar.gz", "has_sig": false, "md5_digest": "735b90015199084ed28c255fe9296a7d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 80832, "upload_time": "2020-04-30T15:53:40", "upload_time_iso_8601": "2020-04-30T15:53:40.140219Z", "url": "https://files.pythonhosted.org/packages/72/5e/c191fa5b3c2d0561100bc6d228c751e28d649afd5952e435065213085bb1/lbuild-1.13.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.13.5": [ { "comment_text": "", "digests": { "md5": "4a79a2facb9a532ca73d30948e03adae", "sha256": "4f3c89fa1b7a925d1b9264b2d55fbe4960e02986c2ca7b8682a39ae997de1997" }, "downloads": -1, "filename": "lbuild-1.13.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4a79a2facb9a532ca73d30948e03adae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 68957, "upload_time": "2020-09-08T09:29:19", "upload_time_iso_8601": "2020-09-08T09:29:19.190777Z", "url": "https://files.pythonhosted.org/packages/b1/92/2e71c23e39d8932a70f1d4dfd64d19bccb27ff651976aef7f89bfbe26cc6/lbuild-1.13.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1e239b7a9246c367f90f18a6836c6873", "sha256": "cfff895cc02558aa0573098c73144dc842512123426125e9f66de89667caf534" }, "downloads": -1, "filename": "lbuild-1.13.5.tar.gz", "has_sig": false, "md5_digest": "1e239b7a9246c367f90f18a6836c6873", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81305, "upload_time": "2020-09-08T09:29:21", "upload_time_iso_8601": "2020-09-08T09:29:21.767329Z", "url": "https://files.pythonhosted.org/packages/83/41/fb63845fb70799c8a0104e164608c93ff2080124aef3b1dca8f19441dc82/lbuild-1.13.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.14.0": [ { "comment_text": "", "digests": { "md5": "418e5ad71b642dd48df7a4913f37ffca", "sha256": "4087572e50330b656710ca1f9728daf67ccc233abf6635fd3bfbf52dca2b5972" }, "downloads": -1, "filename": "lbuild-1.14.0-py3-none-any.whl", "has_sig": false, "md5_digest": "418e5ad71b642dd48df7a4913f37ffca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 69096, "upload_time": "2020-09-24T15:06:54", "upload_time_iso_8601": "2020-09-24T15:06:54.485499Z", "url": "https://files.pythonhosted.org/packages/34/b9/5bb32dc087a9ed3e8ecede522b5efabbe7d3318b4cea8605c84cc0db0226/lbuild-1.14.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "74063590ca8c8f42ebe4324656683826", "sha256": "e41b6d4c30228c1acca8f64179c492fe8aa0a74efecf72a08c78ab8baf568129" }, "downloads": -1, "filename": "lbuild-1.14.0.tar.gz", "has_sig": false, "md5_digest": "74063590ca8c8f42ebe4324656683826", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81683, "upload_time": "2020-09-24T15:06:56", "upload_time_iso_8601": "2020-09-24T15:06:56.592837Z", "url": "https://files.pythonhosted.org/packages/43/68/38e83667bebe750bb37fdda644e19fa224a4fb62d5db3dc76fbcbe59e385/lbuild-1.14.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.14.1": [ { "comment_text": "", "digests": { "md5": "c8af28fb871b73f7225eb4178587d350", "sha256": "07eb766dea1276293a074099426f335ce1794dccd623ab950f50bb3ca96172fc" }, "downloads": -1, "filename": "lbuild-1.14.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c8af28fb871b73f7225eb4178587d350", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 69101, "upload_time": "2020-09-26T23:07:38", "upload_time_iso_8601": "2020-09-26T23:07:38.277563Z", "url": "https://files.pythonhosted.org/packages/30/42/62a8ddf0809afe6eba89d2534a3f756690c842c03bd157c3148935fd5b0d/lbuild-1.14.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "704efff36d40e8c755b3278421d9b313", "sha256": "c1831ccc219d68b16d5d62f59ae2b40a968f20b21ce22acd5e5afed01b5f7beb" }, "downloads": -1, "filename": "lbuild-1.14.1.tar.gz", "has_sig": false, "md5_digest": "704efff36d40e8c755b3278421d9b313", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81308, "upload_time": "2020-09-26T23:07:40", "upload_time_iso_8601": "2020-09-26T23:07:40.279479Z", "url": "https://files.pythonhosted.org/packages/5d/c8/10e972b25f1b64c05f82025b0446577ad83fd9794178ff54e3e923ac3b8d/lbuild-1.14.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.15.0": [ { "comment_text": "", "digests": { "md5": "f8219f242d556116abf257f6b56a58fa", "sha256": "cca5c935f33f73424cb6087a57e67707b933845fde83823036fc1dc4abfc658f" }, "downloads": -1, "filename": "lbuild-1.15.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f8219f242d556116abf257f6b56a58fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 69507, "upload_time": "2021-02-18T17:27:45", "upload_time_iso_8601": "2021-02-18T17:27:45.274820Z", "url": "https://files.pythonhosted.org/packages/ed/fd/2bcb4a031a0685529340d27aeb9d0ceffe5474a0f2f0a20cc5bc60429b1e/lbuild-1.15.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c3a668a19f5794c3b015d48ff0269713", "sha256": "d0aad4f333fe4498d2f03b855ab99808607bb66b538d92ee1eb0feed890bb970" }, "downloads": -1, "filename": "lbuild-1.15.0.tar.gz", "has_sig": false, "md5_digest": "c3a668a19f5794c3b015d48ff0269713", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 81745, "upload_time": "2021-02-18T17:27:47", "upload_time_iso_8601": "2021-02-18T17:27:47.084181Z", "url": "https://files.pythonhosted.org/packages/b8/c6/7c72a332065ecac9de880213c6a15a1d52445075181bf9554cb82cf8622e/lbuild-1.15.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.16.0": [ { "comment_text": "", "digests": { "md5": "351e223cb51aa65511d247b4231c0d26", "sha256": "7b7b2ab6358f7b160803a2f88f1d5005f14d43b9e4a839becf2005dbeac51439" }, "downloads": -1, "filename": "lbuild-1.16.0-py3-none-any.whl", "has_sig": false, "md5_digest": "351e223cb51aa65511d247b4231c0d26", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 70340, "upload_time": "2021-03-24T23:56:50", "upload_time_iso_8601": "2021-03-24T23:56:50.319034Z", "url": "https://files.pythonhosted.org/packages/d2/d1/6bf5dd83c624bd317e617d503cfe71c5175e9dd6ae717331fe7b8b351321/lbuild-1.16.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f55034962de7956fe4c823d4ec6f7063", "sha256": "565a440fd760b1df9cf4d6973dd6a7fd32a0e56fba2496af2c638fda833c8691" }, "downloads": -1, "filename": "lbuild-1.16.0.tar.gz", "has_sig": false, "md5_digest": "f55034962de7956fe4c823d4ec6f7063", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 83459, "upload_time": "2021-03-24T23:56:52", "upload_time_iso_8601": "2021-03-24T23:56:52.608764Z", "url": "https://files.pythonhosted.org/packages/00/e2/e3da7b55209ec9feaaac32583b0b2feb18c6ce9efd030ab4d50a104d9525/lbuild-1.16.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.16.1": [ { "comment_text": "", "digests": { "md5": "dbe8697bb126db7fb457a7bd7982e625", "sha256": "1a73cd3ff337a3b77b099cd6098723b853187933dd3c8fb31aa851824e6dc76b" }, "downloads": -1, "filename": "lbuild-1.16.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dbe8697bb126db7fb457a7bd7982e625", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 70355, "upload_time": "2021-03-26T21:59:12", "upload_time_iso_8601": "2021-03-26T21:59:12.973105Z", "url": "https://files.pythonhosted.org/packages/52/8c/0e115d7784f1a4c524dd6d1e61edbb693e6efd003395a6d35e3a456b526f/lbuild-1.16.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8a608fe3e9fb517572cbd894b7856f8c", "sha256": "44f8944e6a297ca92eb4f1bca698d1b1e6e11eeac3a2015af86250abc7c0e347" }, "downloads": -1, "filename": "lbuild-1.16.1.tar.gz", "has_sig": false, "md5_digest": "8a608fe3e9fb517572cbd894b7856f8c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 83792, "upload_time": "2021-03-26T21:59:14", "upload_time_iso_8601": "2021-03-26T21:59:14.879690Z", "url": "https://files.pythonhosted.org/packages/74/d8/289ddf2ed2aa7dff6ec4be019188d0e8117d6d9d0c5e5b88832961aa167a/lbuild-1.16.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.17.0": [ { "comment_text": "", "digests": { "md5": "be4406b7255502237625a3c876972843", "sha256": "036cc55b4d4f84e50f3338484b0d01dd79e464997db2734aec8b059589700e71" }, "downloads": -1, "filename": "lbuild-1.17.0-py3-none-any.whl", "has_sig": false, "md5_digest": "be4406b7255502237625a3c876972843", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 70409, "upload_time": "2021-04-08T07:57:23", "upload_time_iso_8601": "2021-04-08T07:57:23.412958Z", "url": "https://files.pythonhosted.org/packages/7e/71/cea9dc810c91eaff15aae40b49bec96d955b950883096ff3345497bf3330/lbuild-1.17.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1dac2a942aed10913999a336e630563f", "sha256": "cbad522fb4d51099affb2f8156175d3a081bc67c4cfd1190de5e422ddf9a573b" }, "downloads": -1, "filename": "lbuild-1.17.0.tar.gz", "has_sig": false, "md5_digest": "1dac2a942aed10913999a336e630563f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 83904, "upload_time": "2021-04-08T07:57:25", "upload_time_iso_8601": "2021-04-08T07:57:25.761845Z", "url": "https://files.pythonhosted.org/packages/4d/fc/875e5cee55e519ecddd5891778d4728a754103ea8079f569cd45f8d82ddb/lbuild-1.17.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.18.0": [ { "comment_text": "", "digests": { "md5": "cfbb4d04cacd12137334012ceffa866a", "sha256": "886acb5a0cdde0e05277ea0df1bcf255c8f75df01cb5c6cfd7b90d4562e34482" }, "downloads": -1, "filename": "lbuild-1.18.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cfbb4d04cacd12137334012ceffa866a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 70640, "upload_time": "2021-07-10T22:39:27", "upload_time_iso_8601": "2021-07-10T22:39:27.333138Z", "url": "https://files.pythonhosted.org/packages/60/bf/cdcebc26c73fc68ad764e4d1a220b6ae0ee74391343b9ace731a912a7fe1/lbuild-1.18.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "52e6e932db2221054d4b15c39efb8a58", "sha256": "c4257c00ebafab757275b3321106035853fd44aa7aef14837fd0bce1d50925e9" }, "downloads": -1, "filename": "lbuild-1.18.0.tar.gz", "has_sig": false, "md5_digest": "52e6e932db2221054d4b15c39efb8a58", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 85921, "upload_time": "2021-07-10T22:39:29", "upload_time_iso_8601": "2021-07-10T22:39:29.159122Z", "url": "https://files.pythonhosted.org/packages/7c/c5/5771eeaa5ef524c23f3cfe258e4fcaea34dc65d7bd3a9a610f8a6e67d790/lbuild-1.18.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.18.1": [ { "comment_text": "", "digests": { "md5": "a29acb6b2df926a973e37fe1cb988239", "sha256": "6c469393baebd8e71b43288965d7e4d3db031d486a35df51edc6c2af12298bc5" }, "downloads": -1, "filename": "lbuild-1.18.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a29acb6b2df926a973e37fe1cb988239", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 70628, "upload_time": "2021-09-08T18:38:46", "upload_time_iso_8601": "2021-09-08T18:38:46.473852Z", "url": "https://files.pythonhosted.org/packages/37/76/bc9e3001fd39c6152542c8752a85ec13e1ab95349b6ca1dff30559a1276c/lbuild-1.18.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6a1a5ba142c6157a76b57c1bde7439d9", "sha256": "19f2b18330f888a9cd292d5d2a83ca2055ffd6195fee4a9e71b177755ad0aa30" }, "downloads": -1, "filename": "lbuild-1.18.1.tar.gz", "has_sig": false, "md5_digest": "6a1a5ba142c6157a76b57c1bde7439d9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 85875, "upload_time": "2021-09-08T18:38:48", "upload_time_iso_8601": "2021-09-08T18:38:48.162788Z", "url": "https://files.pythonhosted.org/packages/27/fe/4a86471314f9e0b122fc8c3290a14022c706f9b206070cf861eeeb6d066e/lbuild-1.18.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.19.0": [ { "comment_text": "", "digests": { "md5": "470b4b956263e7deffb6d600a0fbeaf4", "sha256": "37336d6f0e6c36d461e8543f4058b4e14eb611c0a76fa27b6c168daf6e2bf871" }, "downloads": -1, "filename": "lbuild-1.19.0-py3-none-any.whl", "has_sig": false, "md5_digest": "470b4b956263e7deffb6d600a0fbeaf4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71123, "upload_time": "2021-10-02T12:43:16", "upload_time_iso_8601": "2021-10-02T12:43:16.068987Z", "url": "https://files.pythonhosted.org/packages/8a/bd/032b7f72b40cf136564c176087770045882d629c48cbc4914aaebaf65338/lbuild-1.19.0-py3-none-any.whl", "yanked": true, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "16b0da90c05121a5fa8f2c3699f091cd", "sha256": "a61a9b6aae3fdd86e303411d4d551e803561c9e0d9f17c12bfe92794098d7889" }, "downloads": -1, "filename": "lbuild-1.19.0.tar.gz", "has_sig": false, "md5_digest": "16b0da90c05121a5fa8f2c3699f091cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 85637, "upload_time": "2021-10-02T12:43:17", "upload_time_iso_8601": "2021-10-02T12:43:17.856979Z", "url": "https://files.pythonhosted.org/packages/3c/7b/466ca13e60ad5064781820f7cadf493e14217e0ce826a76cb980fb19f761/lbuild-1.19.0.tar.gz", "yanked": true, "yanked_reason": null } ], "1.19.1": [ { "comment_text": "", "digests": { "md5": "6306c68112553d3b83f4e4153c14e2dc", "sha256": "afe569d8bcd39876be3165b197c89ae9023f255479043d1d478d7045816e7f33" }, "downloads": -1, "filename": "lbuild-1.19.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6306c68112553d3b83f4e4153c14e2dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71169, "upload_time": "2021-10-02T14:01:23", "upload_time_iso_8601": "2021-10-02T14:01:23.744538Z", "url": "https://files.pythonhosted.org/packages/f4/7c/febe581c0a577203ba8b15c302eb8da7a8184d564bab8b87409c650c3721/lbuild-1.19.1-py3-none-any.whl", "yanked": true, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "23881c8122716103f8736c6958a141ce", "sha256": "da2b64d710daa033a8cb3a588bbfe7e282f3bc3af78e7e2efbcbe00e55695795" }, "downloads": -1, "filename": "lbuild-1.19.1.tar.gz", "has_sig": false, "md5_digest": "23881c8122716103f8736c6958a141ce", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 85685, "upload_time": "2021-10-02T14:01:25", "upload_time_iso_8601": "2021-10-02T14:01:25.565605Z", "url": "https://files.pythonhosted.org/packages/fc/e4/2d30dd725a8135693ebdbaf080ac5f0fe7817a3c6b8157a7738062ab96d9/lbuild-1.19.1.tar.gz", "yanked": true, "yanked_reason": null } ], "1.19.2": [ { "comment_text": "", "digests": { "md5": "6ff959f15c8171bc0ba2640462483f99", "sha256": "4fbf7d98cb044731368e3d3bd0f6cbc68fa2380e315bec4e4aa84a51a33419ba" }, "downloads": -1, "filename": "lbuild-1.19.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6ff959f15c8171bc0ba2640462483f99", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71185, "upload_time": "2021-10-02T20:29:35", "upload_time_iso_8601": "2021-10-02T20:29:35.621642Z", "url": "https://files.pythonhosted.org/packages/37/9e/94c1c373f4033d35376d02743a31d667ff0589d4ac1f277c96b95f9d8d57/lbuild-1.19.2-py3-none-any.whl", "yanked": true, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "745476256fdffb94bad8e54008082d74", "sha256": "4972381f83d72c5e1328a3de25b9d71fcce75a346a2fb9ec6d44d8b1996b503a" }, "downloads": -1, "filename": "lbuild-1.19.2.tar.gz", "has_sig": false, "md5_digest": "745476256fdffb94bad8e54008082d74", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 85686, "upload_time": "2021-10-02T20:29:37", "upload_time_iso_8601": "2021-10-02T20:29:37.035062Z", "url": "https://files.pythonhosted.org/packages/b2/8c/25a04fe1d6dc4c2129a50424be2db38dcf4c029f38b8e58da1f25b48afb7/lbuild-1.19.2.tar.gz", "yanked": true, "yanked_reason": null } ], "1.19.3": [ { "comment_text": "", "digests": { "md5": "bac1dfd613cafc34d290e4f2cb650f6d", "sha256": "6f0202a5836797eafc155f849f88f7723a876fe846e911839d152e564567c6f1" }, "downloads": -1, "filename": "lbuild-1.19.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bac1dfd613cafc34d290e4f2cb650f6d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71188, "upload_time": "2021-10-02T20:49:04", "upload_time_iso_8601": "2021-10-02T20:49:04.877371Z", "url": "https://files.pythonhosted.org/packages/5a/a3/3df5c45b1cbff964cb37777d07fe704e3b4f35765596ca677a81b9211b88/lbuild-1.19.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e88ef5a18d61876fd8e45b473e18229c", "sha256": "b9d1adf5c57d476cc059dd759d8cc6c5faabaeab8b4d9d3d3126606c4179dcc1" }, "downloads": -1, "filename": "lbuild-1.19.3.tar.gz", "has_sig": false, "md5_digest": "e88ef5a18d61876fd8e45b473e18229c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 85698, "upload_time": "2021-10-02T20:49:06", "upload_time_iso_8601": "2021-10-02T20:49:06.675785Z", "url": "https://files.pythonhosted.org/packages/92/4b/e8fbe93a09a92a44bb48d3847b6c758107a29fe8f4c3903a0672475ced88/lbuild-1.19.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "ce8878bbbfcf72523cb9805d5bc429c4", "sha256": "9eb822f5272eb63de7979412492efdb9c0d9b17311b33eb57d8c6adda3796648" }, "downloads": -1, "filename": "lbuild-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ce8878bbbfcf72523cb9805d5bc429c4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 49427, "upload_time": "2018-09-17T16:08:26", "upload_time_iso_8601": "2018-09-17T16:08:26.769417Z", "url": "https://files.pythonhosted.org/packages/f7/3a/872f0223c14dc7ef26dcd3b1c031bf2297d927de503471e4adfa63e75d3d/lbuild-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1c3a4c55514839f890438d57e406c47e", "sha256": "2d3fdc9850e42bb9c1496c03c700c7c1dc08e516b638ac2fa37617d6e16ad6b8" }, "downloads": -1, "filename": "lbuild-1.2.0.tar.gz", "has_sig": false, "md5_digest": "1c3a4c55514839f890438d57e406c47e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 54859, "upload_time": "2018-09-17T16:08:28", "upload_time_iso_8601": "2018-09-17T16:08:28.760522Z", "url": "https://files.pythonhosted.org/packages/3a/78/7d46dea3552bada488e712493a72e614c29d54a265a1bc2a712b11c2257f/lbuild-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "26a0eb01dcc84b0a3980b11ab757b086", "sha256": "ee95a662193cbcf54e47b4da984e85db63b8e3b0d52794782306269d9806f278" }, "downloads": -1, "filename": "lbuild-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "26a0eb01dcc84b0a3980b11ab757b086", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 49464, "upload_time": "2018-09-21T13:33:01", "upload_time_iso_8601": "2018-09-21T13:33:01.456994Z", "url": "https://files.pythonhosted.org/packages/24/73/d98847b63ee29f53a97a5500bd61a4733b04a23689cc7167d4008801314f/lbuild-1.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d11c0512c69e1458740f934d69910638", "sha256": "18e6cc716ab48aedd1d7f03db32a167416d5c5f59f50e3096aeda23f40689f75" }, "downloads": -1, "filename": "lbuild-1.2.1.tar.gz", "has_sig": false, "md5_digest": "d11c0512c69e1458740f934d69910638", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 54935, "upload_time": "2018-09-21T13:33:03", "upload_time_iso_8601": "2018-09-21T13:33:03.222469Z", "url": "https://files.pythonhosted.org/packages/81/90/daace88c67f824f5132596966b9209f8fac6f691fa808e554d797bfbed98/lbuild-1.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "23face4cef2e7eb6374ca9d0bfb36027", "sha256": "f526884e2fc0e2b515c41040caf03d87ae640e59b33dfc080de1470a3c89489b" }, "downloads": -1, "filename": "lbuild-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "23face4cef2e7eb6374ca9d0bfb36027", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 49464, "upload_time": "2018-09-28T13:32:38", "upload_time_iso_8601": "2018-09-28T13:32:38.554844Z", "url": "https://files.pythonhosted.org/packages/8c/06/8a8492b3de5768a276e063511e3c94c7d3cbbba9405055fe0a28b6394bdc/lbuild-1.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8e032a1f4a1973fa48aae11abcacf1ed", "sha256": "5626b73ce16562bb971b92bb04d609146438d5be4174c8ca43125cfb3b85ea9a" }, "downloads": -1, "filename": "lbuild-1.2.2.tar.gz", "has_sig": false, "md5_digest": "8e032a1f4a1973fa48aae11abcacf1ed", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 54935, "upload_time": "2018-09-28T13:32:40", "upload_time_iso_8601": "2018-09-28T13:32:40.736388Z", "url": "https://files.pythonhosted.org/packages/05/af/8be667b986ec28c5b600c7797fc52f49dfdfe33008cbc98094e6f3e11564/lbuild-1.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.20.0": [ { "comment_text": "", "digests": { "md5": "7bb217e14fd88bf534ff8deda01057ed", "sha256": "3d82b0cd5c807908a6d36cc82b97e47d7c75b3f32aae630c809d1357def396dd" }, "downloads": -1, "filename": "lbuild-1.20.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7bb217e14fd88bf534ff8deda01057ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71286, "upload_time": "2021-10-06T22:17:22", "upload_time_iso_8601": "2021-10-06T22:17:22.987875Z", "url": "https://files.pythonhosted.org/packages/79/15/9d69237a5cac1698aab3aa932a0662486ea4cb0d8dec306d064bbfe5e0ed/lbuild-1.20.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4bff94e628360b9abc4e5fa470923288", "sha256": "9c7067895a44cee43d1177851f11eaac8e243dfb05f7802199175b6fffd30fcf" }, "downloads": -1, "filename": "lbuild-1.20.0.tar.gz", "has_sig": false, "md5_digest": "4bff94e628360b9abc4e5fa470923288", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 85829, "upload_time": "2021-10-06T22:17:25", "upload_time_iso_8601": "2021-10-06T22:17:25.871060Z", "url": "https://files.pythonhosted.org/packages/df/f6/7b5d25f010f2966dc4574953f927590748339701a3fb43732c27d6e2b786/lbuild-1.20.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.21.0": [ { "comment_text": "", "digests": { "md5": "8793ebd4bf1570eaf904afcd15ff0626", "sha256": "4031254108b22ce4f50540881456e7a32ed289323889b2c710bedb3567aba8cc" }, "downloads": -1, "filename": "lbuild-1.21.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8793ebd4bf1570eaf904afcd15ff0626", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71935, "upload_time": "2022-02-10T15:37:07", "upload_time_iso_8601": "2022-02-10T15:37:07.110576Z", "url": "https://files.pythonhosted.org/packages/73/08/b350682b80535fb310aa8ed9c6975d5011f3606574c42e06b7f2aa45a9c9/lbuild-1.21.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f41b2c8bff018ce7188b97f18897ab6f", "sha256": "dbe65b7e769bb036ccfbff5eb5e1866944e8127810c86c290b1edf79c1b4ad45" }, "downloads": -1, "filename": "lbuild-1.21.0.tar.gz", "has_sig": false, "md5_digest": "f41b2c8bff018ce7188b97f18897ab6f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 86648, "upload_time": "2022-02-10T15:37:08", "upload_time_iso_8601": "2022-02-10T15:37:08.841944Z", "url": "https://files.pythonhosted.org/packages/b7/c0/8425786106ed085ef71887e62a8abcffdb4bff72d9160cd74252721d946d/lbuild-1.21.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.21.1": [ { "comment_text": "", "digests": { "md5": "a3f746f7f899ad4221a0f3029e602784", "sha256": "5dc4cdf2c99cda7eba3c7226ca2567798d6a45cefbc2cd694b937f8c21619efb" }, "downloads": -1, "filename": "lbuild-1.21.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a3f746f7f899ad4221a0f3029e602784", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71961, "upload_time": "2022-02-14T13:06:45", "upload_time_iso_8601": "2022-02-14T13:06:45.676183Z", "url": "https://files.pythonhosted.org/packages/a6/34/31d4fa19b13f64999b0359acaa5cc420ee6170b18a94d77ad1fb799fde3e/lbuild-1.21.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "648b09ef1d77ed164b15920f697b84ae", "sha256": "5282035966783adf1b375820be589e06934e7adc1d5ba36f58ce7ecd7563046a" }, "downloads": -1, "filename": "lbuild-1.21.1.tar.gz", "has_sig": false, "md5_digest": "648b09ef1d77ed164b15920f697b84ae", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 86679, "upload_time": "2022-02-14T13:06:47", "upload_time_iso_8601": "2022-02-14T13:06:47.790125Z", "url": "https://files.pythonhosted.org/packages/f9/17/dd2e2f86e448a0b58be2c3f22d2bac171dea070b361c2fa1e5892cab725f/lbuild-1.21.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.21.2": [ { "comment_text": "", "digests": { "md5": "298def2cfd96d914916f6b17dbc487ba", "sha256": "9cf0da023a5b0eb9d2ea0039d0e5a2096dba947e3304d37a485cb6fbf3cf6631" }, "downloads": -1, "filename": "lbuild-1.21.2-py3-none-any.whl", "has_sig": false, "md5_digest": "298def2cfd96d914916f6b17dbc487ba", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71963, "upload_time": "2022-02-14T15:22:12", "upload_time_iso_8601": "2022-02-14T15:22:12.957064Z", "url": "https://files.pythonhosted.org/packages/e8/7d/6fa675a4c889aca55b3d1c4fe454e4ecc556eb1ea1ecf619aa5d31bc66f7/lbuild-1.21.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5b0bd33092feac96899c118248a8e737", "sha256": "ad2039a2da783fdf254f195bac8401bfd9c25fff4483c47e9a248ff35ef9fd46" }, "downloads": -1, "filename": "lbuild-1.21.2.tar.gz", "has_sig": false, "md5_digest": "5b0bd33092feac96899c118248a8e737", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 86660, "upload_time": "2022-02-14T15:22:15", "upload_time_iso_8601": "2022-02-14T15:22:15.155944Z", "url": "https://files.pythonhosted.org/packages/5b/97/233559c64bca1fddb17cfca73eb0091937d3377b8c478482378d522e3d59/lbuild-1.21.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.21.3": [ { "comment_text": "", "digests": { "md5": "beb11a442cecf2a040b8dbdccf032344", "sha256": "ebae7c44a72acf95cf6aa467f88861bc7851ac370e038087cc072352c2f38ae5" }, "downloads": -1, "filename": "lbuild-1.21.3-py3-none-any.whl", "has_sig": false, "md5_digest": "beb11a442cecf2a040b8dbdccf032344", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71959, "upload_time": "2022-02-14T18:04:19", "upload_time_iso_8601": "2022-02-14T18:04:19.009513Z", "url": "https://files.pythonhosted.org/packages/ba/d0/95c1e2d0d969566ab6a839d4ec9d2dc27dbea1fb08b7ec28bf7e13493d7e/lbuild-1.21.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2ee3113c8e62fcd7c830dd8ec41318bb", "sha256": "25f04fac7b4bffe155d7e2d1e5e3663a200d88472513ceb51c68f5ef47242934" }, "downloads": -1, "filename": "lbuild-1.21.3.tar.gz", "has_sig": false, "md5_digest": "2ee3113c8e62fcd7c830dd8ec41318bb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 86665, "upload_time": "2022-02-14T18:04:20", "upload_time_iso_8601": "2022-02-14T18:04:20.799759Z", "url": "https://files.pythonhosted.org/packages/fd/a8/531e853ca6da5ab8a9bb3b83b77189f184560785bf13824a973938eb6795/lbuild-1.21.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.21.4": [ { "comment_text": "", "digests": { "md5": "953d7f2a6cf5b7de2ba4d48b7c1979ca", "sha256": "e368827bf474b8d2deec46503d8f3a4b37033799d176551512a1a344f4712509" }, "downloads": -1, "filename": "lbuild-1.21.4-py3-none-any.whl", "has_sig": false, "md5_digest": "953d7f2a6cf5b7de2ba4d48b7c1979ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71964, "upload_time": "2022-02-14T19:36:13", "upload_time_iso_8601": "2022-02-14T19:36:13.771132Z", "url": "https://files.pythonhosted.org/packages/46/0b/007413f233db6a4091800c137991d8ffafeb3c5badafdaccb0b8c609a6aa/lbuild-1.21.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ea78f9c25aeebf1a1243b9ef9afdcb10", "sha256": "d1b504b4609eb49f045ff2b3e020fafd78f6cfb55d3dea8220ecb005dfbcac99" }, "downloads": -1, "filename": "lbuild-1.21.4.tar.gz", "has_sig": false, "md5_digest": "ea78f9c25aeebf1a1243b9ef9afdcb10", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 86667, "upload_time": "2022-02-14T19:36:15", "upload_time_iso_8601": "2022-02-14T19:36:15.304814Z", "url": "https://files.pythonhosted.org/packages/7a/cb/3a21844c049e52968b24a419217fb1818b35b37134407548edb070101ec9/lbuild-1.21.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "91a5acab0108dd7b9e5977e793ee0067", "sha256": "f273e92ea878122cc5a77d63d666c48f1e359e769ce1c2b4938cd0b075e731b8" }, "downloads": -1, "filename": "lbuild-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "91a5acab0108dd7b9e5977e793ee0067", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 50219, "upload_time": "2018-10-01T08:47:04", "upload_time_iso_8601": "2018-10-01T08:47:04.766050Z", "url": "https://files.pythonhosted.org/packages/3d/19/1222f5e3e4d5fcc89be52e54db8776e790ed6eb239e992dafe327cfdbaf0/lbuild-1.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6e12c051ccc716ae8bde89b6da963990", "sha256": "31161f7e940d105b623baf689941e335433ee57dd3c165129854dd8bc4f3cfe8" }, "downloads": -1, "filename": "lbuild-1.3.0.tar.gz", "has_sig": false, "md5_digest": "6e12c051ccc716ae8bde89b6da963990", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 57003, "upload_time": "2018-10-01T08:47:06", "upload_time_iso_8601": "2018-10-01T08:47:06.668458Z", "url": "https://files.pythonhosted.org/packages/16/33/4e2257a12a90f36f31485eec4f3d8fcdc761f9457fe5b8846a09325056f5/lbuild-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "14aa970604220b2a53e2c0417ee86762", "sha256": "b1e781fc1eaafdf966db926cfaab000bf24d151e118dfd88a2f13afade2f1a6e" }, "downloads": -1, "filename": "lbuild-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "14aa970604220b2a53e2c0417ee86762", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 50239, "upload_time": "2018-10-01T13:51:24", "upload_time_iso_8601": "2018-10-01T13:51:24.938180Z", "url": "https://files.pythonhosted.org/packages/2f/3a/20c803b3c6bdae4efcc7639f404d3e2b49f29533fbc9270ea63ae810b8f4/lbuild-1.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7ce943192b0c385818b1b92dba421c3e", "sha256": "a7cb89b01801dc1093896dae048e9ee9f1d68396aa89156b24b508cabcdd35b4" }, "downloads": -1, "filename": "lbuild-1.3.1.tar.gz", "has_sig": false, "md5_digest": "7ce943192b0c385818b1b92dba421c3e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 57017, "upload_time": "2018-10-01T13:51:26", "upload_time_iso_8601": "2018-10-01T13:51:26.963130Z", "url": "https://files.pythonhosted.org/packages/10/5d/b203acbab772779152893a4241b16bdabd52553fc0fc6b26fd760367e5fe/lbuild-1.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "97b861e16bac0c8aec8f44acca9c480d", "sha256": "015b61d44935046fa4fc4d251ecb69be2137f46302862b25e9bc733312cdc1ae" }, "downloads": -1, "filename": "lbuild-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "97b861e16bac0c8aec8f44acca9c480d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 50429, "upload_time": "2018-10-03T11:36:48", "upload_time_iso_8601": "2018-10-03T11:36:48.952212Z", "url": "https://files.pythonhosted.org/packages/2c/84/a48a096a466991e3f111b0d429cf1f042f769ae19b9e97dd503b6096edde/lbuild-1.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "412986cfe61a043754945bc220367348", "sha256": "63f7b6a7d2c9b9fa25e59ffc9117e178a9006972355d0bd1e20c7ebc8695b7fe" }, "downloads": -1, "filename": "lbuild-1.4.0.tar.gz", "has_sig": false, "md5_digest": "412986cfe61a043754945bc220367348", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56622, "upload_time": "2018-10-03T11:36:50", "upload_time_iso_8601": "2018-10-03T11:36:50.967515Z", "url": "https://files.pythonhosted.org/packages/2c/05/e12ab3b223fa181001a66df114405c5f612956e76170e88d6ed472e85028/lbuild-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "ca9ec40cb085a15676361f68c7b6499a", "sha256": "97c8aae938357fbff6c17f52609ea6e3fae1f0cc87e6419f03b626feb6e767da" }, "downloads": -1, "filename": "lbuild-1.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ca9ec40cb085a15676361f68c7b6499a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 50435, "upload_time": "2018-10-05T13:25:57", "upload_time_iso_8601": "2018-10-05T13:25:57.266549Z", "url": "https://files.pythonhosted.org/packages/e6/3d/806973a19b531a6573c87ed5caf2111059a0cd81ac8de4d68f537cb131ad/lbuild-1.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "97847736235614abbecddb6855619186", "sha256": "c689274cd32137de9c0e20f379472082df3e6ed10ba8b328b0aa70f1d28899f4" }, "downloads": -1, "filename": "lbuild-1.4.1.tar.gz", "has_sig": false, "md5_digest": "97847736235614abbecddb6855619186", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 58907, "upload_time": "2018-10-05T13:26:00", "upload_time_iso_8601": "2018-10-05T13:26:00.100391Z", "url": "https://files.pythonhosted.org/packages/09/fb/998962b12ef1220cde29bc9202d2ba631be36c7ea6f8a479a37e4495a168/lbuild-1.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "ae5af598dee2bd30fd281d8b0e400cdf", "sha256": "dd34fbcca27c21fd07fb2862dd3cb79f93d977cd90596c4f0a9e85db9e31a0bf" }, "downloads": -1, "filename": "lbuild-1.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ae5af598dee2bd30fd281d8b0e400cdf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 50469, "upload_time": "2018-10-12T15:07:52", "upload_time_iso_8601": "2018-10-12T15:07:52.325616Z", "url": "https://files.pythonhosted.org/packages/ec/bf/9c27746e9ec1b339a91e8efda19c887828d59a553b9ae139f08e4259f30f/lbuild-1.4.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8edfaac10ee7a2298a1089ee9baf8920", "sha256": "950476adff8d9afebd7617367ec333c8d2e5625fb59c5158b903ebbbda62eb5b" }, "downloads": -1, "filename": "lbuild-1.4.2.tar.gz", "has_sig": false, "md5_digest": "8edfaac10ee7a2298a1089ee9baf8920", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 58961, "upload_time": "2018-10-12T15:07:54", "upload_time_iso_8601": "2018-10-12T15:07:54.709616Z", "url": "https://files.pythonhosted.org/packages/22/df/d9c2ffb6bafd6cdff42d6571ac605ef93abc27dc97b3b4d851401ef3180a/lbuild-1.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "cd3bc47da755ba702ad015f36e20192e", "sha256": "bb48465a46534905a9a449fe50b75f939558c4ffa2670f80924040786d48b09f" }, "downloads": -1, "filename": "lbuild-1.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "cd3bc47da755ba702ad015f36e20192e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 50468, "upload_time": "2018-10-14T15:51:00", "upload_time_iso_8601": "2018-10-14T15:51:00.840701Z", "url": "https://files.pythonhosted.org/packages/c3/01/d55633d8d88bb71aa18425472308e25154058109ce813dea351c6bba8d7a/lbuild-1.4.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e23198a4c3ef5346dac73f2175406925", "sha256": "281983c09cc8419262a6bd5dc92480b973551344955d921d8f725931d38ddcbc" }, "downloads": -1, "filename": "lbuild-1.4.3.tar.gz", "has_sig": false, "md5_digest": "e23198a4c3ef5346dac73f2175406925", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 58968, "upload_time": "2018-10-14T15:51:02", "upload_time_iso_8601": "2018-10-14T15:51:02.672434Z", "url": "https://files.pythonhosted.org/packages/72/da/5361b8940f4bb1fe52861ea3415d0516254b658cb83e31b56f77c934df16/lbuild-1.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "3ee7ae744b9ba4bedc4a574be81b1988", "sha256": "277483aff60f6e45bc1489bf0631cb91c9f4d5c8d8a0a0c529fdac11e4a86e32" }, "downloads": -1, "filename": "lbuild-1.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "3ee7ae744b9ba4bedc4a574be81b1988", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 50492, "upload_time": "2018-10-16T16:07:20", "upload_time_iso_8601": "2018-10-16T16:07:20.977271Z", "url": "https://files.pythonhosted.org/packages/4c/5f/151d7aaf7b99d6e4a283d4c34c458e3d714938bf6100f7659b549d3527e2/lbuild-1.4.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c47dc82e7ebae5bf84ba60ec4dc796dc", "sha256": "6ce382b743aa9572ac56be18e255cf80f9b2d95553f1650438fcd717d485ba04" }, "downloads": -1, "filename": "lbuild-1.4.4.tar.gz", "has_sig": false, "md5_digest": "c47dc82e7ebae5bf84ba60ec4dc796dc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 58980, "upload_time": "2018-10-16T16:07:22", "upload_time_iso_8601": "2018-10-16T16:07:22.544035Z", "url": "https://files.pythonhosted.org/packages/74/e9/ac797338b6367be4ed429465e1815346f2165042af2cd4e2d01e7464752a/lbuild-1.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.5": [ { "comment_text": "", "digests": { "md5": "6290ada0d2bd1c7b8a5a1412374f688e", "sha256": "4fc7e767690f206dc833912bbbef9fbb44cf5b8e648f2f12ff77b64d3f1e2bc0" }, "downloads": -1, "filename": "lbuild-1.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "6290ada0d2bd1c7b8a5a1412374f688e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 50519, "upload_time": "2018-10-17T17:34:02", "upload_time_iso_8601": "2018-10-17T17:34:02.804999Z", "url": "https://files.pythonhosted.org/packages/ba/84/20dda3a3446f01a714f712ba79a08564dabb3da7e83d9f93dd6bdee9827b/lbuild-1.4.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1d2128de504d89c44b99c86029c582a1", "sha256": "bd69ab624d875a194354bf8ceab30d4968aa50c7154a100f4ca1202f3ea737fa" }, "downloads": -1, "filename": "lbuild-1.4.5.tar.gz", "has_sig": false, "md5_digest": "1d2128de504d89c44b99c86029c582a1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 58992, "upload_time": "2018-10-17T17:34:04", "upload_time_iso_8601": "2018-10-17T17:34:04.799772Z", "url": "https://files.pythonhosted.org/packages/ce/37/4f765fa788efcbfee59ebb2c9068012dc81f905bd590e08791f2cb85a103/lbuild-1.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.6": [ { "comment_text": "", "digests": { "md5": "c6fd758e13973925624dba313c990605", "sha256": "eeae3ec95917c3a71ef137a6604526e6d0fcb576abe2eb2518945171daa89d28" }, "downloads": -1, "filename": "lbuild-1.4.6-py3-none-any.whl", "has_sig": false, "md5_digest": "c6fd758e13973925624dba313c990605", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 50547, "upload_time": "2018-11-11T16:03:24", "upload_time_iso_8601": "2018-11-11T16:03:24.457473Z", "url": "https://files.pythonhosted.org/packages/db/4d/16570b6b2489c535da1ba9bb2c073ecff73d7337a21f216742655a5968ac/lbuild-1.4.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d5404fddb7ff28a36d362cb8e85e122b", "sha256": "c32218992fdede18e25c379be43843494f93fd37f81f3f37d220ede09c401b83" }, "downloads": -1, "filename": "lbuild-1.4.6.tar.gz", "has_sig": false, "md5_digest": "d5404fddb7ff28a36d362cb8e85e122b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 58993, "upload_time": "2018-11-11T16:03:26", "upload_time_iso_8601": "2018-11-11T16:03:26.757659Z", "url": "https://files.pythonhosted.org/packages/18/bd/bc327e5338a39d688521848fa6f793a4d1190ea5b44ebf1fab195b89bfce/lbuild-1.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "9fe5e579cd471d0eb45a93bbd8bef1c2", "sha256": "ed368437ec7c3af3ddaa25114853e604907e1aceb0638977133d3ce99155a6cc" }, "downloads": -1, "filename": "lbuild-1.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9fe5e579cd471d0eb45a93bbd8bef1c2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 51951, "upload_time": "2018-11-14T17:12:14", "upload_time_iso_8601": "2018-11-14T17:12:14.260600Z", "url": "https://files.pythonhosted.org/packages/17/90/dc54132c748d53149fa9808fe8b8ffad0675edd6006e58f34872c7e2ee7e/lbuild-1.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0f9bdeb1c854fbd6dbc36e3dbb608368", "sha256": "366489dcc19233f0210d34723fd9f8a3bb34fa537d7e505467ff2edfb7d877e9" }, "downloads": -1, "filename": "lbuild-1.5.0.tar.gz", "has_sig": false, "md5_digest": "0f9bdeb1c854fbd6dbc36e3dbb608368", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 59801, "upload_time": "2018-11-14T17:12:16", "upload_time_iso_8601": "2018-11-14T17:12:16.668310Z", "url": "https://files.pythonhosted.org/packages/66/86/c285878b7ffd30e8622e57962ad932a15d0499cdfff072c364fb4d523f1a/lbuild-1.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "406d7f11f0ead7c28a7e759ace147051", "sha256": "6589d9edb81c00d94bca4fdb2d09859a1db925252b4ee50dccf1348883893941" }, "downloads": -1, "filename": "lbuild-1.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "406d7f11f0ead7c28a7e759ace147051", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 52843, "upload_time": "2018-12-15T00:20:18", "upload_time_iso_8601": "2018-12-15T00:20:18.963987Z", "url": "https://files.pythonhosted.org/packages/a4/7d/755adb6faaab4f116483f18558405b4b31615728d2b3f4c81c84ca2c7374/lbuild-1.5.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "277e0068cc5405c094d3f9025c1575fd", "sha256": "cee261e4668418997713ac567c8bb7fbd244d20b721f3e5d54cbf0f04c83e845" }, "downloads": -1, "filename": "lbuild-1.5.3.tar.gz", "has_sig": false, "md5_digest": "277e0068cc5405c094d3f9025c1575fd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 57989, "upload_time": "2018-12-15T00:20:21", "upload_time_iso_8601": "2018-12-15T00:20:21.733721Z", "url": "https://files.pythonhosted.org/packages/d9/13/a4a17180a2a43e201d3ba7113029fd41e5906ca79438c3cb5beeeecb7ce6/lbuild-1.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.5": [ { "comment_text": "", "digests": { "md5": "c2d0a8b752f51362ae94159e992251b7", "sha256": "85a184f44dc0efd4dd35ecb3397b5f922ca16432e1ecc735c7eb1121a1a18382" }, "downloads": -1, "filename": "lbuild-1.5.5-py3-none-any.whl", "has_sig": false, "md5_digest": "c2d0a8b752f51362ae94159e992251b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 52823, "upload_time": "2018-12-15T00:25:30", "upload_time_iso_8601": "2018-12-15T00:25:30.346914Z", "url": "https://files.pythonhosted.org/packages/8e/77/97b15e4e694e3aff8f833e69d29fd3858f065bb8476f61785c5ce0093470/lbuild-1.5.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f92d62eef6f22a9db06229ff9969cdfc", "sha256": "5c7d34cb1ab7f2e4f1460b5fe46da82f369dd98f7222100bb7bb430439ffbc50" }, "downloads": -1, "filename": "lbuild-1.5.5.tar.gz", "has_sig": false, "md5_digest": "f92d62eef6f22a9db06229ff9969cdfc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 57960, "upload_time": "2018-12-15T00:25:32", "upload_time_iso_8601": "2018-12-15T00:25:32.258355Z", "url": "https://files.pythonhosted.org/packages/d2/f9/29a8da11814a5fa21e9ecbb47a93e727c0321169b86d121c32412f9e5e94/lbuild-1.5.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.6": [ { "comment_text": "", "digests": { "md5": "4ebba1239a1c64dbb91f7c52306b86ad", "sha256": "31c80b2f9a9c4ddbc79cd79d8066906c9c9955754cf8dfb5e61200aeef8dec37" }, "downloads": -1, "filename": "lbuild-1.5.6-py3-none-any.whl", "has_sig": false, "md5_digest": "4ebba1239a1c64dbb91f7c52306b86ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 52859, "upload_time": "2019-01-16T21:28:03", "upload_time_iso_8601": "2019-01-16T21:28:03.187477Z", "url": "https://files.pythonhosted.org/packages/c4/eb/42f51b2984e24c4d25cec63472dc582d05618169088ff8abcd5f3d294172/lbuild-1.5.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "742186ea299ff1a2944bf7c1ddc1aaea", "sha256": "79fd50e7e4a395da290cd46a238b6623a5042b009b35229756b5e78cd6fc1d34" }, "downloads": -1, "filename": "lbuild-1.5.6.tar.gz", "has_sig": false, "md5_digest": "742186ea299ff1a2944bf7c1ddc1aaea", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 57984, "upload_time": "2019-01-16T21:28:18", "upload_time_iso_8601": "2019-01-16T21:28:18.136265Z", "url": "https://files.pythonhosted.org/packages/19/04/475d253a229f1ef63af0b6a37b1df67a4ccfa58f920da54cdbba3d1b3d9f/lbuild-1.5.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "d85dcae156817bb11604517b2337e918", "sha256": "debbd2c5d8cc9b5a5cc5944951b2eac68af8e0fac41cda818e67906a12bc0607" }, "downloads": -1, "filename": "lbuild-1.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d85dcae156817bb11604517b2337e918", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 52980, "upload_time": "2019-01-16T21:37:52", "upload_time_iso_8601": "2019-01-16T21:37:52.730111Z", "url": "https://files.pythonhosted.org/packages/4e/cc/f2a7b92c37e727a945e075824cf48a72c82b3aa3fcf0c0efdc7fe79984d5/lbuild-1.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "13cf7bf8c1b846c2714980712c695348", "sha256": "8e621f602aeae93f987ee47804be992b25f40b9506581ec10378b93d11db55f4" }, "downloads": -1, "filename": "lbuild-1.6.0.tar.gz", "has_sig": false, "md5_digest": "13cf7bf8c1b846c2714980712c695348", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 58186, "upload_time": "2019-01-16T21:37:54", "upload_time_iso_8601": "2019-01-16T21:37:54.754285Z", "url": "https://files.pythonhosted.org/packages/b5/df/832d59926fb4a6ec31818bb07393eddfbcbb3c41bd9d931242a4b43a133b/lbuild-1.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "6b65553b9a8e9f305f4f4544220cae84", "sha256": "0c53a575ae69c4f2c559883d6098fb790f1c6d412214afdfbdf92e7f4e52de5b" }, "downloads": -1, "filename": "lbuild-1.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6b65553b9a8e9f305f4f4544220cae84", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 53115, "upload_time": "2019-01-18T00:54:58", "upload_time_iso_8601": "2019-01-18T00:54:58.270704Z", "url": "https://files.pythonhosted.org/packages/b5/99/3d94385bbc4804e57fab2b96ec4dd7ee64031dacbd172bfafbfcb9ff3745/lbuild-1.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "98dfe8bc1a9c70c0078e0308df64b7a3", "sha256": "bf796776718d3513f09c17b1166f584b437d9965b4bcee6efe96d30ecccc0698" }, "downloads": -1, "filename": "lbuild-1.6.1.tar.gz", "has_sig": false, "md5_digest": "98dfe8bc1a9c70c0078e0308df64b7a3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 58308, "upload_time": "2019-01-18T00:55:00", "upload_time_iso_8601": "2019-01-18T00:55:00.265848Z", "url": "https://files.pythonhosted.org/packages/7e/ec/5f32491c502fc883181d62aa29a36adcea81435fe0a7dacd99f16e696ef0/lbuild-1.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "07b92c358992be51f6173863be0ea7a6", "sha256": "e4f3d2d80a5d2fc94eb742ab85dc39a1b127bb76ab652de9c0c3b9f8446e688d" }, "downloads": -1, "filename": "lbuild-1.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "07b92c358992be51f6173863be0ea7a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 53118, "upload_time": "2019-01-18T00:48:44", "upload_time_iso_8601": "2019-01-18T00:48:44.495828Z", "url": "https://files.pythonhosted.org/packages/6d/b3/b7e323fd4978580ec8026a4951050c0b5d480155b6b7edcdc2bafa0b45e7/lbuild-1.6.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "433163571efed02c8d8c3172995b863f", "sha256": "35d666023da400d63088380637f2f22d95633c944ef61d0671c8c867d8d5cf1c" }, "downloads": -1, "filename": "lbuild-1.6.2.tar.gz", "has_sig": false, "md5_digest": "433163571efed02c8d8c3172995b863f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 58323, "upload_time": "2019-01-18T00:48:46", "upload_time_iso_8601": "2019-01-18T00:48:46.807647Z", "url": "https://files.pythonhosted.org/packages/51/fa/25aff7475776e25e4c479b2a11232cf5f61b9558c1944f78dff34d64807b/lbuild-1.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.3": [ { "comment_text": "", "digests": { "md5": "6c317af1b8bb288c10b801eee2bf93d5", "sha256": "50fb3ffebcb5ddb56a2447feb2d22dc0f474e056fafcad0af3da255ce05fc2ad" }, "downloads": -1, "filename": "lbuild-1.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6c317af1b8bb288c10b801eee2bf93d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 53392, "upload_time": "2019-01-21T20:41:51", "upload_time_iso_8601": "2019-01-21T20:41:51.690326Z", "url": "https://files.pythonhosted.org/packages/f8/0b/d434b5fea4361b2b8d754075e459e38066e5ed04a44cf9e6a50643b94514/lbuild-1.6.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fb90a4a4e2a9808ec6254fbb1c9f262c", "sha256": "644af0fb8c2c3b871deb5bc9d62ca9582c3feed6097950064375df891dc08fb7" }, "downloads": -1, "filename": "lbuild-1.6.3.tar.gz", "has_sig": false, "md5_digest": "fb90a4a4e2a9808ec6254fbb1c9f262c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 59279, "upload_time": "2019-01-21T20:41:53", "upload_time_iso_8601": "2019-01-21T20:41:53.888018Z", "url": "https://files.pythonhosted.org/packages/42/37/0e89441cdb2012681379abe2308b26a616e234e15711914a1ece1f51c3c0/lbuild-1.6.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.4": [ { "comment_text": "", "digests": { "md5": "b0a1bccbf0198758096b9e78d49257be", "sha256": "bdf90b9bb68d14745103858391815652b5636b2a04849a7d7f1d99ebef1cb2ea" }, "downloads": -1, "filename": "lbuild-1.6.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b0a1bccbf0198758096b9e78d49257be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 53412, "upload_time": "2019-02-09T12:47:25", "upload_time_iso_8601": "2019-02-09T12:47:25.613368Z", "url": "https://files.pythonhosted.org/packages/8d/c1/30762a53006a11f7bb4994775d9e887b54ce7e189e7ed905fbc3a78a015b/lbuild-1.6.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "31c67e5f98b764afbde62f64a61ba0f4", "sha256": "c78d6036db8c7e9dbd39aaaad005a84212fed2ccd194a5247c7449d35212a402" }, "downloads": -1, "filename": "lbuild-1.6.4.tar.gz", "has_sig": false, "md5_digest": "31c67e5f98b764afbde62f64a61ba0f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 59295, "upload_time": "2019-02-09T12:47:27", "upload_time_iso_8601": "2019-02-09T12:47:27.900427Z", "url": "https://files.pythonhosted.org/packages/58/0d/bc60a18950bda7239d3c74cc858a62e6840024d001e5f5738e614c99101b/lbuild-1.6.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.5": [ { "comment_text": "", "digests": { "md5": "c794953d45ddcbf034b42036b3a3daf0", "sha256": "9e0ee419d191e57b33a17f2b17192223aa99d73bf56546bf0e531914a7aefcde" }, "downloads": -1, "filename": "lbuild-1.6.5-py3-none-any.whl", "has_sig": false, "md5_digest": "c794953d45ddcbf034b42036b3a3daf0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 53479, "upload_time": "2019-02-13T20:51:38", "upload_time_iso_8601": "2019-02-13T20:51:38.823223Z", "url": "https://files.pythonhosted.org/packages/15/d8/64bee34798f4f3b628e0341c00a30b57d983fd2cd82f36d3d616452dbecf/lbuild-1.6.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0973c67fbd9da3bacd7d226d2c9e78cd", "sha256": "d2067b93d1f343941fba01b2ca662fc8d7077c6fbc9a839a52bf3065a9d2bb4c" }, "downloads": -1, "filename": "lbuild-1.6.5.tar.gz", "has_sig": false, "md5_digest": "0973c67fbd9da3bacd7d226d2c9e78cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 59403, "upload_time": "2019-02-13T20:51:40", "upload_time_iso_8601": "2019-02-13T20:51:40.715228Z", "url": "https://files.pythonhosted.org/packages/fc/c7/f7aa784f550a5c35d6b94645cbecf9838548324c84c548d9826cf81d68bc/lbuild-1.6.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "a5f956e3cc1c916dc9d6e3b139c4567a", "sha256": "60636fda3e9d30048720ae804389483cb812efb07ed9a34be1d3c6ca77709cac" }, "downloads": -1, "filename": "lbuild-1.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a5f956e3cc1c916dc9d6e3b139c4567a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 55459, "upload_time": "2019-02-20T21:01:33", "upload_time_iso_8601": "2019-02-20T21:01:33.856724Z", "url": "https://files.pythonhosted.org/packages/7f/cb/42a99f9a4033ff5a910f069f6ec4805a2579e07812daf2397bcae4a4233e/lbuild-1.7.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1a3c018f107c504a3692f82b85685362", "sha256": "6682eca7951ddb05e69121d34e987bd9b4a4d2f5fa3a8208cd2dce2385d65f24" }, "downloads": -1, "filename": "lbuild-1.7.0.tar.gz", "has_sig": false, "md5_digest": "1a3c018f107c504a3692f82b85685362", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 64212, "upload_time": "2019-02-20T21:01:36", "upload_time_iso_8601": "2019-02-20T21:01:36.134486Z", "url": "https://files.pythonhosted.org/packages/52/1b/d88bfdcba119053f72a237fd50f4e2083e728bccb8639a2296ffc29879e4/lbuild-1.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "700bf077f870a50cf9f9216261663c0a", "sha256": "c8241b6520b9159220938f984acea9b2592a08e41f0a024a3a54247dce2100b5" }, "downloads": -1, "filename": "lbuild-1.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "700bf077f870a50cf9f9216261663c0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 55698, "upload_time": "2019-02-20T21:12:28", "upload_time_iso_8601": "2019-02-20T21:12:28.754851Z", "url": "https://files.pythonhosted.org/packages/96/02/4203c48babf14b7726d9d90f95078726699ea37d4b8549d478cbc5820417/lbuild-1.7.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0eb4ccd4603fd074cadf90c79a22fbc5", "sha256": "09778c81c669a587f934f63def0f58097d477dd64c517cb1ebf635e64d49a0f3" }, "downloads": -1, "filename": "lbuild-1.7.1.tar.gz", "has_sig": false, "md5_digest": "0eb4ccd4603fd074cadf90c79a22fbc5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 64597, "upload_time": "2019-02-20T21:12:30", "upload_time_iso_8601": "2019-02-20T21:12:30.789356Z", "url": "https://files.pythonhosted.org/packages/11/e8/e1635a83d718e1c5de39b63e98e7cf1b4e858a8adba3ee36cf9d99382b05/lbuild-1.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "9808b4b9e26942b03d01f8b770a59e79", "sha256": "92bff66f15e3603b2731aabe00d0bb873a5553012c27d6f2f13f795c91841800" }, "downloads": -1, "filename": "lbuild-1.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9808b4b9e26942b03d01f8b770a59e79", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 61807, "upload_time": "2019-02-27T20:26:41", "upload_time_iso_8601": "2019-02-27T20:26:41.897441Z", "url": "https://files.pythonhosted.org/packages/2d/c5/e36303cb852fc319b0b25157912f1ffcbbe948c3de703bb78bdb4bac4888/lbuild-1.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6f6c4f69fabf2aeb7e548f407fdf0b7d", "sha256": "514e930292731ecae2d741741871459186ad9a3f751d4ea73009d5d47bf37d5e" }, "downloads": -1, "filename": "lbuild-1.8.0.tar.gz", "has_sig": false, "md5_digest": "6f6c4f69fabf2aeb7e548f407fdf0b7d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 74094, "upload_time": "2019-02-27T20:26:44", "upload_time_iso_8601": "2019-02-27T20:26:44.121531Z", "url": "https://files.pythonhosted.org/packages/df/ec/6ab3a7d2293e15795528d7f995800385d5db6c6c300da30fd95587edc165/lbuild-1.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "925e62aef0712f9ec9320a70606cc465", "sha256": "da4a7ad0c4a73e971cac0d75e072cf3bcc43e61d9a1da518b81aaa608dab404c" }, "downloads": -1, "filename": "lbuild-1.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "925e62aef0712f9ec9320a70606cc465", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 62427, "upload_time": "2019-03-01T18:06:13", "upload_time_iso_8601": "2019-03-01T18:06:13.701261Z", "url": "https://files.pythonhosted.org/packages/39/9d/d85ec30cb31eb959058bbb7da1b9240bb7e88e95e2d6279054961069416d/lbuild-1.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c20faf65113a81fc5faa66138a7ea63e", "sha256": "f4232e66bf7f3529be6628f399464999f118afcf610ee1323371130806c17f72" }, "downloads": -1, "filename": "lbuild-1.9.0.tar.gz", "has_sig": false, "md5_digest": "c20faf65113a81fc5faa66138a7ea63e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 74854, "upload_time": "2019-03-01T18:06:15", "upload_time_iso_8601": "2019-03-01T18:06:15.492719Z", "url": "https://files.pythonhosted.org/packages/dc/d7/8bfb00054210810b0c5e622a4a4f20383082ba12c09f1e55d427687a8772/lbuild-1.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.1": [ { "comment_text": "", "digests": { "md5": "73b29e9edca00577f659a73b6a7b5967", "sha256": "de71516aedb730dc8811d8c209627e8ab8a1a341945a18d2a43cc336bcbda70a" }, "downloads": -1, "filename": "lbuild-1.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "73b29e9edca00577f659a73b6a7b5967", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 62465, "upload_time": "2019-03-01T20:55:14", "upload_time_iso_8601": "2019-03-01T20:55:14.686888Z", "url": "https://files.pythonhosted.org/packages/be/92/0e95d01c683b24d5c62bc8a7a8284f78dc082fec41bc976439336a982bed/lbuild-1.9.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c79eb3e013e5455792fee74f10a0f6eb", "sha256": "f85a929afe05e88cc097c0cc96122c33c0e2076b7f4ac0245e40a9ba03ff5aba" }, "downloads": -1, "filename": "lbuild-1.9.1.tar.gz", "has_sig": false, "md5_digest": "c79eb3e013e5455792fee74f10a0f6eb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 74875, "upload_time": "2019-03-01T20:55:16", "upload_time_iso_8601": "2019-03-01T20:55:16.300055Z", "url": "https://files.pythonhosted.org/packages/02/15/1a510d5b6924b1512862c43af515a8c28cc2383fdc78cc3839a27998f751/lbuild-1.9.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.2": [ { "comment_text": "", "digests": { "md5": "07426884663db6d32052e57e32000eff", "sha256": "f2043a0532d5eb6dde09dda2c7cc6a3c7448bd31044cede7668e1dbdd95f09a1" }, "downloads": -1, "filename": "lbuild-1.9.2-py3-none-any.whl", "has_sig": false, "md5_digest": "07426884663db6d32052e57e32000eff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 62437, "upload_time": "2019-03-12T22:31:37", "upload_time_iso_8601": "2019-03-12T22:31:37.828635Z", "url": "https://files.pythonhosted.org/packages/13/8a/7192ace62fbab561ae8495b27c643baabe0d0213a516a854a13ddb25788c/lbuild-1.9.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8a914a55cae652110b6300d72fd7d0f9", "sha256": "0a9fea9c4bafe0a426b070c4fa4d5c6c2e0731d9d42bed7ffc5c9880737d4ad3" }, "downloads": -1, "filename": "lbuild-1.9.2.tar.gz", "has_sig": false, "md5_digest": "8a914a55cae652110b6300d72fd7d0f9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 74859, "upload_time": "2019-03-12T22:31:39", "upload_time_iso_8601": "2019-03-12T22:31:39.361619Z", "url": "https://files.pythonhosted.org/packages/90/79/6d4cf0dc5ba8337ab4542a08dc5ece7a0840c702c28b1cc20613b5067689/lbuild-1.9.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "953d7f2a6cf5b7de2ba4d48b7c1979ca", "sha256": "e368827bf474b8d2deec46503d8f3a4b37033799d176551512a1a344f4712509" }, "downloads": -1, "filename": "lbuild-1.21.4-py3-none-any.whl", "has_sig": false, "md5_digest": "953d7f2a6cf5b7de2ba4d48b7c1979ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 71964, "upload_time": "2022-02-14T19:36:13", "upload_time_iso_8601": "2022-02-14T19:36:13.771132Z", "url": "https://files.pythonhosted.org/packages/46/0b/007413f233db6a4091800c137991d8ffafeb3c5badafdaccb0b8c609a6aa/lbuild-1.21.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ea78f9c25aeebf1a1243b9ef9afdcb10", "sha256": "d1b504b4609eb49f045ff2b3e020fafd78f6cfb55d3dea8220ecb005dfbcac99" }, "downloads": -1, "filename": "lbuild-1.21.4.tar.gz", "has_sig": false, "md5_digest": "ea78f9c25aeebf1a1243b9ef9afdcb10", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 86667, "upload_time": "2022-02-14T19:36:15", "upload_time_iso_8601": "2022-02-14T19:36:15.304814Z", "url": "https://files.pythonhosted.org/packages/7a/cb/3a21844c049e52968b24a419217fb1818b35b37134407548edb070101ec9/lbuild-1.21.4.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }