{"id":24168703,"url":"https://github.com/philipbelesky/moult","last_synced_at":"2025-10-25T07:30:53.939Z","repository":{"id":14198637,"uuid":"16905228","full_name":"philipbelesky/moult","owner":"philipbelesky","description":"A script that extracts the contents of Python, VB, and C# components within Grasshopper3D and writes them to files.","archived":false,"fork":false,"pushed_at":"2014-02-28T05:11:13.000Z","size":220,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-12T22:43:49.170Z","etag":null,"topics":["grasshopper","grasshopper-3d"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"eduardolundgren/tracking.js","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/philipbelesky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-17T07:33:54.000Z","updated_at":"2024-01-22T21:27:46.000Z","dependencies_parsed_at":"2022-08-30T00:00:45.261Z","dependency_job_id":null,"html_url":"https://github.com/philipbelesky/moult","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philipbelesky%2Fmoult","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philipbelesky%2Fmoult/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philipbelesky%2Fmoult/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philipbelesky%2Fmoult/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philipbelesky","download_url":"https://codeload.github.com/philipbelesky/moult/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238097335,"owners_count":19415978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["grasshopper","grasshopper-3d"],"created_at":"2025-01-12T22:43:56.603Z","updated_at":"2025-10-25T07:30:53.581Z","avatar_url":"https://github.com/philipbelesky.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Moult\r\n\r\nA script that extracts the contents of Python, VB, and C# components within [Grasshopper](http://www.grasshopper3d.com/) and writes them out to files.\r\n\r\nI find it useful because it means (when combined with version control) that I can use a diff tool to compare between different revisions to a script inside a component. YMMV.\r\n\r\n## Installation\r\n\r\nYou'll need Python installed in order to use this. You'll then need to open up a shell, navigate to where your Grasshopper files are, and then execute the script. As an example:\r\n\r\n    $ cd \"c:\\Grasshopper Project\\\"\r\n    $ python \"c:\\Script Location\\moult.py\"\r\n\r\n## Usage\r\n\r\nIf you execute the file it will traverse down all the folders within the directory it is placed. Each time it encounters a **GHX** file it will extract its the scripts and write them to a file in the same directory tree.\r\n\r\n*Note that you must Save As your Grasshopper files as \"Grasshopper Xml (.ghx)\" for this to work*\r\n\r\n*Note that each time this script is run it deletes and then regenerates the old versions of its files. This means that if you delete a component containing a script in the definition, and then re-run this script its file will be removed. Comment out lines 88-91 if you want to stop this behaviour*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilipbelesky%2Fmoult","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilipbelesky%2Fmoult","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilipbelesky%2Fmoult/lists"}