{"id":237302,"name":"svfactor","ecosystem":"hackage","description":"\n\nsvfactor is a library for parsing, manipulating, and printing CSV and\nsimilar formats (such as PSV, TSV, and many more).\n\nsvfactor retains all syntactic information including newlines, and\nprovides lenses, prisms, and traversals to query and manipulate this\nstructure.\nThis should make it useful for writing custom CSV transformations and\nsanitisation tools. For example, one could easily use it to rewrite all\nCRLF newlines to LF.\nIt also extends RFC4180 by allowing optional spacing surrounding fields.\n\nsvfactor's parser is exposed so you can use it independently and printing is similarly standalone.\n\nPlease note that there are known performance problems with svfactor.\n\nExamples:\n\nHandling multiple logical documents in one file: Concat.hs\n\nFixing inconsistent formatting with lenses: Requote.hs\n\n[Index]\n\nNote: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.\n\nPackage maintainers\n\nFor package maintainers and hackage trustees\n\nCandidates","homepage":"https://github.com/qfpl/svfactor","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/qfpl/svfactor","keywords_array":["bsd3","csv","library","text","web","Propose Tags"],"namespace":null,"versions_count":1,"first_release_published_at":"2018-07-19T06:33:26.000Z","latest_release_published_at":"2018-07-19T06:33:26.000Z","latest_release_number":"0.1","last_synced_at":"2026-05-13T18:46:01.001Z","created_at":"2022-04-06T02:17:23.583Z","updated_at":"2026-05-13T18:46:27.806Z","registry_url":"https://hackage.haskell.org/package/svfactor","install_command":"cabal install svfactor","documentation_url":null,"metadata":{},"repo_metadata":{"id":56879528,"uuid":"139108530","full_name":"qfpl/svfactor","owner":"qfpl","description":null,"archived":false,"fork":false,"pushed_at":"2019-11-25T04:34:52.000Z","size":59,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-12-21T07:54:54.657Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","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/qfpl.png","metadata":{"files":{"readme":null,"changelog":"changelog.md","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":"2018-06-29T06:12:26.000Z","updated_at":"2020-01-12T01:47:26.000Z","dependencies_parsed_at":"2022-08-20T23:10:44.061Z","dependency_job_id":null,"html_url":"https://github.com/qfpl/svfactor","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/qfpl/svfactor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfpl%2Fsvfactor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfpl%2Fsvfactor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfpl%2Fsvfactor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfpl%2Fsvfactor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qfpl","download_url":"https://codeload.github.com/qfpl/svfactor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfpl%2Fsvfactor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29848634,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T22:37:40.667Z","status":"online","status_checked_at":"2026-02-26T02:00:06.774Z","response_time":89,"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"},"owner_record":{"login":"qfpl","name":"Queensland Functional Programming Lab","uuid":"29878991","kind":"organization","description":"","email":"contact@qfpl.io","website":"http://qfpl.io/","location":"Brisbane, Australia","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/29878991?v=4","repositories_count":97,"last_synced_at":"2024-03-21T08:30:23.273Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/qfpl","funding_links":[],"total_stars":1410,"followers":null,"following":null,"created_at":"2022-11-09T05:23:01.792Z","updated_at":"2024-03-21T08:30:24.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qfpl","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qfpl/repositories"},"tags":[{"name":"0.1","sha":"19097c8f0c5282ebbe96e3756b7212eeaae1a823","kind":"tag","published_at":"2018-07-19T06:34:14.000Z","download_url":"https://codeload.github.com/qfpl/svfactor/tar.gz/0.1","html_url":"https://github.com/qfpl/svfactor/releases/tag/0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/qfpl/svfactor@0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfpl%2Fsvfactor/tags/0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfpl%2Fsvfactor/tags/0.1/manifests"}]},"repo_metadata_updated_at":"2026-05-13T18:46:27.786Z","dependent_packages_count":0,"downloads":904,"downloads_period":"total","dependent_repos_count":2,"rankings":{"downloads":81.67208069755515,"dependent_repos_count":31.03448275862069,"dependent_packages_count":19.184952978056426,"stargazers_count":43.48247363921345,"forks_count":37.05329153605016,"docker_downloads_count":null,"average":42.48545632189918},"purl":"pkg:hackage/svfactor","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/hackage/svfactor","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/hackage/svfactor","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/hackage/svfactor/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-17T22:48:33.562Z","issues_count":0,"pull_requests_count":3,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":130327.33333333333,"issues_closed_count":0,"pull_requests_closed_count":3,"pull_request_authors_count":2,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":3,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfpl%2Fsvfactor/issues","maintainers":[{"login":"gwils","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gwils"},{"login":"dalaing","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dalaing"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/svfactor/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/svfactor/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/svfactor/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/svfactor/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/svfactor/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/svfactor/codemeta","maintainers":[{"uuid":"qfpl","login":"qfpl","name":null,"email":null,"url":null,"packages_count":54,"html_url":"https://hackage.haskell.org/user/qfpl","role":null,"created_at":"2022-11-14T19:58:23.423Z","updated_at":"2022-11-14T19:58:23.423Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/qfpl/packages"}]}