{"id":13494299,"url":"https://github.com/anapaulagomes/looong","last_synced_at":"2025-03-28T13:32:56.960Z","repository":{"id":95166759,"uuid":"87225712","full_name":"anapaulagomes/looong","owner":"anapaulagomes","description":"Discovery of Long Parameter List","archived":true,"fork":false,"pushed_at":"2018-01-28T12:40:47.000Z","size":72,"stargazers_count":16,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-31T08:37:56.228Z","etag":null,"topics":["codesmells","refactoring","tox"],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anapaulagomes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-04T19:16:39.000Z","updated_at":"2023-01-28T11:40:08.000Z","dependencies_parsed_at":"2023-03-13T03:01:44.310Z","dependency_job_id":null,"html_url":"https://github.com/anapaulagomes/looong","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapaulagomes%2Flooong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapaulagomes%2Flooong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapaulagomes%2Flooong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapaulagomes%2Flooong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anapaulagomes","download_url":"https://codeload.github.com/anapaulagomes/looong/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246037606,"owners_count":20713442,"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":["codesmells","refactoring","tox"],"created_at":"2024-07-31T19:01:23.632Z","updated_at":"2025-03-28T13:32:56.953Z","avatar_url":"https://github.com/anapaulagomes.png","language":"Jupyter Notebook","funding_links":[],"categories":["Jupyter Notebook"],"sub_categories":[],"readme":"# Looong\n\nKeeping eyes on long parameters list 🔍\n\n[![Build Status](https://travis-ci.org/anapaulagomes/looong.svg?branch=master)](https://travis-ci.org/anapaulagomes/looong) [![Code Climate](https://codeclimate.com/github/anapaulagomes/looong/badges/gpa.svg)](https://codeclimate.com/github/anapaulagomes/looong) [![Code Health](https://landscape.io/github/anapaulagomes/looong/master/landscape.svg?style=flat)](https://landscape.io/github/anapaulagomes/looong/master)\n\nLong parameter list is a code smell - a clue that there is a problem on your software design. To help you on this this module has been written to identify methods with long parameter list and to suggest parameters groups that could became potential object because they appear together.\n\n## Usage\n\n### Installing\n```bash\n$ make install\n```\n\nWe recommend the use of virtual environment.\n\n### Running\n```bash\n$ python looong/main.py -d \u003cdirectory\u003e\n```\n\n```bash\nAnalyzed files: 553\nAnalyzed methods: 2224\n\nrender [django/shortcuts.py] ['request', 'template_name', 'context', 'content_type', 'status', 'using'] 6\ncreate [django/contrib/admin/filters.py] ['field', 'request', 'params', 'model', 'model_admin', 'field_path'] 6\nkml [django/contrib/gis/sitemaps/views.py] ['request', 'label', 'model', 'field_name', 'compress', 'using'] 6\nrun [django/core/servers/basehttp.py] ['addr', 'port', 'wsgi_handler', 'ipv6', 'threading', 'server_cls'] 6\ndata [django/contrib/gis/gdal/raster/band.py] ['data', 'offset', 'size', 'shape', 'as_memoryview'] 5\nkmz [django/contrib/gis/sitemaps/views.py] ['request', 'label', 'model', 'field_name', 'using'] 5\ndumps [django/core/signing.py] ['obj', 'key', 'salt', 'serializer', 'compress'] 5\nloads [django/core/signing.py] ['s', 'key', 'salt', 'serializer', 'max_age'] 5\nmigrate [django/db/migrations/executor.py] ['targets', 'plan', 'state', 'fake', 'fake_initial'] 5\nconnect [django/db/models/signals.py] ['receiver', 'sender', 'weak', 'dispatch_uid', 'apps'] 5\n```\n\n### Goal\n\nMethods with long parameter list pointing to a problem with OO principles. One of the approach to solve is creating objects with the parameters that appear more together. Our goal is cluster this parameters and suggest as objects.\n\n```\nLoooooooooooooooooooooooooooooooooooG\n\nAnalyzed files: 553\nAnalyzed methods: 2224\n\nrender [django/shortcuts.py] ['request', 'template_name', 'context', 'content_type', 'status', 'using'] 6\ncreate [django/contrib/admin/filters.py] ['field', 'request', 'params', 'model', 'model_admin', 'field_path'] 6\nkml [django/contrib/gis/sitemaps/views.py] ['request', 'label', 'model', 'field_name', 'compress', 'using'] 6\nrun [django/core/servers/basehttp.py] ['addr', 'port', 'wsgi_handler', 'ipv6', 'threading', 'server_cls'] 6\n\nCorrelated parameters and possible objects:\n\n(foo, bar)\n(foo, bar, barbar)\n\n```\n\n## Development\n\nPlease see [our contribution guide](CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanapaulagomes%2Flooong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanapaulagomes%2Flooong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanapaulagomes%2Flooong/lists"}