{"id":34952083,"url":"https://github.com/derb12/mcetl","last_synced_at":"2026-05-22T15:39:46.230Z","repository":{"id":54706307,"uuid":"289048546","full_name":"derb12/mcetl","owner":"derb12","description":"A small-scale Extract-Transform-Load framework focused on materials characterization","archived":false,"fork":false,"pushed_at":"2022-06-11T21:26:46.000Z","size":3870,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-08T21:37:53.168Z","etag":null,"topics":["materials-characterization","materials-engineering","materials-science","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/derb12.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"docs/contributing.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-20T15:56:32.000Z","updated_at":"2021-02-02T23:44:21.000Z","dependencies_parsed_at":"2022-08-14T00:40:16.404Z","dependency_job_id":null,"html_url":"https://github.com/derb12/mcetl","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/derb12/mcetl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derb12%2Fmcetl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derb12%2Fmcetl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derb12%2Fmcetl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derb12%2Fmcetl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/derb12","download_url":"https://codeload.github.com/derb12/mcetl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derb12%2Fmcetl/sbom","scorecard":{"id":335137,"data":{"date":"2025-08-11","repo":{"name":"github.com/derb12/mcetl","commit":"c94904cbe41a3f793fde01e457b6c243ac7fab3b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/21 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"42 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-3wwr-3g9f-9gc7","Warn: Project is vulnerable to: GHSA-vp47-9734-prjw","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: GHSA-6p56-wp2h-9hxr","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: GHSA-3f63-hfp8-52jq","Warn: Project is vulnerable to: PYSEC-2021-41 / GHSA-3wvg-mj6g-m9cv","Warn: Project is vulnerable to: GHSA-44wm-f244-xhp3","Warn: Project is vulnerable to: GHSA-4fx9-vc88-q2xc","Warn: Project is vulnerable to: PYSEC-2021-35 / GHSA-57h3-9rgr-c24m","Warn: Project is vulnerable to: PYSEC-2021-331 / GHSA-7534-mm45-c74v","Warn: Project is vulnerable to: PYSEC-2021-137 / GHSA-77gc-v2xv-rvvh","Warn: Project is vulnerable to: PYSEC-2021-92 / GHSA-7r7m-5h27-29hp","Warn: Project is vulnerable to: PYSEC-2023-227 / GHSA-8ghj-p4vj-mr35","Warn: Project is vulnerable to: PYSEC-2022-10 / GHSA-8vj2-vxx3-667w","Warn: Project is vulnerable to: PYSEC-2021-36 / GHSA-8xjq-8fcg-g5hw","Warn: Project is vulnerable to: PYSEC-2021-42 / GHSA-95q3-8gr9-gm8w","Warn: Project is vulnerable to: PYSEC-2021-317 / GHSA-98vv-pw6r-q6q4","Warn: Project is vulnerable to: PYSEC-2021-38 / GHSA-9hx2-hgq2-2g4f","Warn: Project is vulnerable to: PYSEC-2022-168 / GHSA-9j59-75qj-795w","Warn: Project is vulnerable to: PYSEC-2021-40 / GHSA-f4w8-cv6p-x6r5","Warn: Project is vulnerable to: PYSEC-2021-69 / GHSA-f5g8-5qq7-938w","Warn: Project is vulnerable to: PYSEC-2021-139 / GHSA-g6rj-rv7j-xwp4","Warn: Project is vulnerable to: PYSEC-2021-71 / GHSA-hf64-x4gq-p99h","Warn: Project is vulnerable to: PYSEC-2021-94 / GHSA-hjfx-8p6c-g7gx","Warn: Project is vulnerable to: GHSA-j7hp-h8jx-5ppr","Warn: Project is vulnerable to: GHSA-jgpv-4h4c-xhw3","Warn: Project is vulnerable to: PYSEC-2022-42979 / GHSA-m2vv-5vj5-2hm7","Warn: Project is vulnerable to: PYSEC-2021-37 / GHSA-mvg9-xffr-p774","Warn: Project is vulnerable to: PYSEC-2021-39 / GHSA-p43w-g3c5-g5mq","Warn: Project is vulnerable to: PYSEC-2022-8 / GHSA-pw3c-h7wp-cvhx","Warn: Project is vulnerable to: PYSEC-2021-93 / GHSA-q5hq-fp76-qmrc","Warn: Project is vulnerable to: PYSEC-2021-138 / GHSA-rwv7-3v45-hg29","Warn: Project is vulnerable to: PYSEC-2021-70 / GHSA-vqcj-wrf2-7v73","Warn: Project is vulnerable to: PYSEC-2022-9 / GHSA-xrcv-f9gm-v42c","Warn: Project is vulnerable to: PYSEC-2023-175","Warn: Project is vulnerable to: PYSEC-2021-437 / GHSA-5xp3-jfq3-5q8x","Warn: Project is vulnerable to: PYSEC-2023-228 / GHSA-mq26-g339-26xf","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2022-43017 / GHSA-qwmp-2cf2-g9g6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T04:32:48.336Z","repository_id":54706307,"created_at":"2025-08-18T04:32:48.336Z","updated_at":"2025-08-18T04:32:48.336Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33349855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"online","status_checked_at":"2026-05-22T02:00:06.671Z","response_time":265,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["materials-characterization","materials-engineering","materials-science","python"],"created_at":"2025-12-26T21:39:57.237Z","updated_at":"2026-05-22T15:39:46.224Z","avatar_url":"https://github.com/derb12.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=====\nmcetl\n=====\n\n.. image:: https://github.com/derb12/mcetl/raw/main/docs/images/logo.png\n    :alt: mcetl Logo\n    :align: center\n\n.. image:: https://img.shields.io/pypi/v/mcetl.svg\n    :target: https://pypi.python.org/pypi/mcetl\n    :alt: Most Recent Version\n\n.. image:: https://readthedocs.org/projects/mcetl/badge/?version=latest\n    :target: https://mcetl.readthedocs.io\n    :alt: Documentation Status\n\n.. image:: https://img.shields.io/pypi/pyversions/mcetl.svg\n    :target: https://pypi.python.org/pypi/mcetl\n    :alt: Supported Python versions\n\n.. image:: https://img.shields.io/badge/license-BSD%203--Clause-blue.svg\n    :target: https://github.com/derb12/mcetl/tree/main/LICENSE.txt\n    :alt: BSD 3-clause license\n\n\nmcetl is a small-scale, GUI-based Extract-Transform-Load framework focused on materials characterization.\n\n* For Python 3.7+\n* Open Source: BSD 3-Clause License\n* Source Code: https://github.com/derb12/mcetl\n* Documentation: https://mcetl.readthedocs.io.\n\n\nmcetl is focused on reducing the time required to repeatedly process data files and\nwrite the results to Excel. It does this by allowing the user to define DataSource objects\nfor each separate source of data. Each DataSource contains information such as the\noptions needed to import data from files, the calculations that will be performed\non the data, and the options for writing the data to Excel. Once a DataSource is created,\nit can be selected within mcetl's main user interface.\n\nIn addition, mcetl provides fitting and plotting user interfaces that\ncan be used without any prior setup.\n\n\n.. contents:: **Contents**\n    :depth: 1\n\n\nIntroduction\n------------\n\nPurpose\n~~~~~~~\n\nThe aim of mcetl is to ease the repeated processing of data files. Contrary to its name, mcetl\ncan process any tabulated files (txt, csv, tsv, xlsx, etc.), and does not require that the files originate\nfrom materials characterization. However, the focus on materials characterization was selected because:\n\n* Most data files from materials characterization are relatively small in size (a few kB or MB).\n* Materials characterization files are typically cleanly tabulated and do not require handling\n  messy or missing data.\n* It was the author's area of usage and naming things is hard...\n\nmcetl requires only a very basic understanding of Python to use, and allows a single person to\ncreate a tool that their entire group can use to process data and produce Excel files with a\nconsistent style. mcetl can create new Excel files when processing data or saving peak fitting\nresults, or it can append to an existing Excel file to easily work with already created files.\n\nLimitations\n~~~~~~~~~~~\n\n* Data from files is fully loaded into memory for processing, so mcetl is not\n  suited for processing files whose total memory size is large (e.g. cannot\n  load a 10 GB file on a computer with only 8 GB of RAM).\n* mcetl does not provide any resources for processing data files directly from\n  characterization equipment (such as .XRDML, .PAR, etc.). Other libraries such\n  as `xylib \u003chttps://github.com/wojdyr/xylib\u003e`_ already exist and are capable of\n  converting many such files to a format mcetl can use (txt, csv, etc.).\n* The peak fitting and plotting modules in mcetl are not as feature-complete as\n  other alternatives such as `Origin \u003chttps://originlab.com\u003e`_,\n  `fityk \u003chttps://fityk.nieto.pl\u003e`_, `SciDAVis \u003chttps://sourceforge.net/projects/scidavis/\u003e`_,\n  etc. The modules are included in mcetl in case those better alternatives are not\n  available, and the author highly recommends using those alternatives over mcetl if available.\n\n\nInstallation\n------------\n\nDependencies\n~~~~~~~~~~~~\n\nmcetl requires `Python \u003chttps://python.org\u003e`_ version 3.7 or later and the following libraries:\n\n* `asteval \u003chttps://github.com/newville/asteval\u003e`_\n* `lmfit \u003chttps://lmfit.github.io/lmfit-py/\u003e`_ (\u003e= 1.0)\n* `Matplotlib \u003chttps://matplotlib.org\u003e`_ (\u003e= 3.1)\n* `NumPy \u003chttps://numpy.org\u003e`_ (\u003e= 1.8)\n* `openpyxl \u003chttps://openpyxl.readthedocs.io/en/stable/\u003e`_ (\u003e= 2.4)\n* `pandas \u003chttps://pandas.pydata.org\u003e`_ (\u003e= 0.25)\n* `PySimpleGUI \u003chttps://github.com/PySimpleGUI/PySimpleGUI\u003e`_ (\u003e= 4.29)\n* `SciPy \u003chttps://www.scipy.org/scipylib/index.html\u003e`_\n\n\nAll of the required libraries should be automatically installed when installing mcetl\nusing either of the two installation methods below.\n\nAdditionally, mcetl can optionally use `Pillow \u003chttps://python-pillow.org/\u003e`_\nto allow for additional options when saving figures in the plotting GUI.\n\n\nStable Release\n~~~~~~~~~~~~~~\n\nmcetl is easily installed using `pip \u003chttps://pip.pypa.io\u003e`_, simply by running\nthe following command in your terminal:\n\n.. code-block:: console\n\n    pip install --upgrade mcetl\n\nThis is the preferred method to install mcetl, as it will always install the\nmost recent stable release.\n\n\nDevelopment Version\n~~~~~~~~~~~~~~~~~~~\n\nThe sources for mcetl can be downloaded from the `Github repo`_.\n\nThe public repository can be cloned using:\n\n.. code-block:: console\n\n    git clone https://github.com/derb12/mcetl.git\n\n\nOnce the repository is downloaded, it can be installed with:\n\n.. code-block:: console\n\n    cd mcetl\n    python setup.py install\n\n\n.. _Github repo: https://github.com/derb12/mcetl\n\n\nQuick Start\n-----------\n\nThe sections below give a quick introduction to using mcetl, requiring no setup.\nFor a more detailed introduction, refer to the `tutorials section`_ of mcetl's\ndocumentation.\n\n.. _tutorials section: https://mcetl.readthedocs.io/en/latest/tutorials/index.html\n\nNote: on Windows operating systems, the GUIs can appear blurry due to how dpi\nscaling is handled. To fix, simply do:\n\n.. code-block:: python\n\n    import mcetl\n    mcetl.set_dpi_awareness()\n\nThe above code **must** be called before opening any GUIs, or else the dpi scaling\nwill be incorrect.\n\n\nMain GUI\n~~~~~~~~\n\nThe main GUI for mcetl contains options for processing data, fitting, plotting,\nwriting data to Excel, and moving files.\n\nBefore using the main GUI, DataSource objects must be created. Each DataSource\ncontains the information for reading files for that DataSource (such as what\nseparator to use, which rows and columns to use, labels for the columns, etc.),\nthe calculations that will be performed on the data, and the options for writing\nthe data to Excel (formatting, placement in the worksheet, etc.).\n\nThe following will create a DataSource named 'tutorial' with the default settings,\nand will then open the main GUI.\n\n.. code-block:: python\n\n    import mcetl\n\n    simple_datasource = mcetl.DataSource(name='tutorial')\n    mcetl.launch_main_gui([simple_datasource])\n\n\nFitting Data\n~~~~~~~~~~~~\n\nTo use the fitting module in mcetl, simply do:\n\n.. code-block:: python\n\n    from mcetl import fitting\n    fitting.launch_peak_fitting_gui()\n\n\nA window will then appear to select the data file(s) to be fit and the Excel file for saving the results.\nNo other setup is required for doing fitting.\n\nAfter doing the fitting, the fit results and plots will be saved to Excel.\n\n\nPlotting\n~~~~~~~~\n\nTo use the plotting module in mcetl, simply do:\n\n.. code-block:: python\n\n    from mcetl import plotting\n    plotting.launch_plotting_gui()\n\n\nSimilar to fitting, a window will then appear to select the data file(s) to be plotted,\nand no other setup is required for doing plotting.\n\nWhen plotting, the image of the plots can be saved to all formats supported by\n`Matplotlib \u003chttps://matplotlib.org\u003e`_, including tiff, jpg, png, svg, and pdf.\n\nIn addition, the layout of the plots can be saved to apply to other figures later, and the data\nfor the plots can be saved so that the entire plot can be recreated.\n\nTo reopen a figure saved through mcetl, do:\n\n.. code-block:: python\n\n    plotting.load_previous_figure()\n\n\nGenerating Example Data\n~~~~~~~~~~~~~~~~~~~~~~~\n\nFiles for example data from characterization techniques can be created using:\n\n.. code-block:: python\n\n    from mcetl import raw_data\n    raw_data.generate_raw_data()\n\n\nData produced by the generate_raw_data function covers the following characterization techniques:\n\n* X-ray diffraction (XRD)\n* Fourier-transform infrared spectroscopy (FTIR)\n* Raman spectroscopy\n* Thermogravimetric analysis (TGA)\n* Differential scanning calorimetry (DSC)\n* Rheometry\n* Uniaxial tensile tests\n* Pore size measurements\n\n\nExample Programs\n~~~~~~~~~~~~~~~~\n\n`Example programs`_  are available to show basic usage of mcetl. The examples include:\n\n* Generating raw data\n* Using the main GUI\n* Using the fitting GUI\n* Using the plotting GUI\n* Reopening a figure saved with the plotting GUI\n\n\nThe example program for using the main GUI contains all necessary inputs for processing the\nexample raw data generated by the generate_raw_data function as described above and is an\nexcellent resource for creating new DataSource objects.\n\n\n.. _Example programs: https://github.com/derb12/mcetl/tree/main/examples\n\n\nFuture Plans\n------------\n\nPlanned features for later releases:\n\n* Develop tests for all modules in the package.\n* Switch from print statements to logging.\n* Switch GUI backend from PySimpleGUI to wxPython or something web-based.\n* Add more plot types to the plotting gui, including bar charts, categorical plots, and 3d plots.\n* Make fitting more flexible by allowing more options or user inputs.\n* Potentially add support for importing data from more file types.\n* Improve overall look and usability of all GUIs.\n\n\nContributing\n------------\n\nContributions are welcomed and greatly appreciated. For information on submitting bug reports,\npull requests, or general feedback, please refer to the `contributing guide`_.\n\n.. _contributing guide: https://github.com/derb12/mcetl/tree/main/docs/contributing.rst\n\n\nChangelog\n---------\n\nRefer to the changelog_ for information on mcetl's changes.\n\n.. _changelog: https://github.com/derb12/mcetl/tree/main/CHANGELOG.rst\n\n\nLicense\n-------\n\nmcetl is open source and available under the BSD 3-clause license.\nFor more information, refer to the license_.\n\n.. _license: https://github.com/derb12/mcetl/tree/main/LICENSE.txt\n\n\nAuthor\n------\n\n* Donald Erb \u003cdonnie.erb@gmail.com\u003e\n\n\nGallery\n-------\n\nImages of the various GUIs can be found on the `gallery section`_ of\nmcetl's documentation.\n\n.. _gallery section: https://mcetl.readthedocs.io/en/latest/gallery.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderb12%2Fmcetl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderb12%2Fmcetl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderb12%2Fmcetl/lists"}