{"id":18929964,"url":"https://github.com/heartacker/cscripting","last_synced_at":"2025-07-29T22:42:11.260Z","repository":{"id":164069759,"uuid":"639509288","full_name":"heartacker/CScripting","owner":"heartacker","description":"write c# script like python","archived":false,"fork":false,"pushed_at":"2024-05-28T06:30:24.000Z","size":115,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-22T06:22:48.942Z","etag":null,"topics":["cs-script","csharp-script","csharp-sourcegenerator","dotnet-interactive","dotnet-script","jupyter","notebook","polygon","python","pythonnet"],"latest_commit_sha":null,"homepage":"https://www.nuget.org/packages/CScripting","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heartacker.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-11T15:42:36.000Z","updated_at":"2024-09-13T05:38:58.000Z","dependencies_parsed_at":"2024-11-08T11:41:25.127Z","dependency_job_id":"35842865-142a-4abe-b733-049fb0fbbdcb","html_url":"https://github.com/heartacker/CScripting","commit_stats":null,"previous_names":["heartacker/cscripting","heartacker/static.system"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/heartacker/CScripting","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heartacker%2FCScripting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heartacker%2FCScripting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heartacker%2FCScripting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heartacker%2FCScripting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heartacker","download_url":"https://codeload.github.com/heartacker/CScripting/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heartacker%2FCScripting/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267773377,"owners_count":24142102,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"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":["cs-script","csharp-script","csharp-sourcegenerator","dotnet-interactive","dotnet-script","jupyter","notebook","polygon","python","pythonnet"],"created_at":"2024-11-08T11:35:59.751Z","updated_at":"2025-07-29T22:42:11.237Z","avatar_url":"https://github.com/heartacker.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 1. CScripting\n\n![Visualization of the codebase](./diagram.svg)\n\n[![GitHub stars](https://img.shields.io/github/stars/heartacker/CScripting?style=for-the-badge)](https://github.com/heartacker/CScripting)\n[![Nuget](https://img.shields.io/nuget/v/CScripting?style=for-the-badge)](https://www.nuget.org/packages/CScripting)\n![Nuget](https://img.shields.io/nuget/dt/CScripting?style=for-the-badge)\n[![GitHub release](https://img.shields.io/github/v/release/heartacker/CScripting?style=for-the-badge)](https://github.com/heartacker/CScripting/releases)\n\n- [Roslyn](https://learn.microsoft.com/zh-cn/dotnet/api/?view=roslyn-dotnet-4.3.0)\n- [CSharpScript](https://blog.51cto.com/u_13267193/5552052)\n- [CSharpScript MemoryManager](https://blog.51cto.com/ineuos/4027860)\n- [Unity引擎与C#脚本](https://blog.51cto.com/u_15127597/4740392)\n- [Scripting-API-Samples](https://github.com/dotnet/roslyn/blob/main/docs/wiki/Scripting-API-Samples.md)\n\u003c!-- @import \"[TOC]\" {cmd=\"toc\" depthFrom=1 depthTo=6 orderedList=false} --\u003e\n\n\u003c!-- code_chunk_output --\u003e\n\n- [1. CScripting](#1-cscripting)\n  - [1.1. Instruction](#11-instruction)\n  - [1.2. Recent Changelog](#12-recent-changelog)\n  - [1.3. Demo](#13-demo)\n  - [1.4. Dotnet script and repl](#14-dotnet-script-and-repl)\n  - [1.5. Extended function list](#15-extended-function-list)\n  - [1.6. Extended function list like `Matlab`](#16-extended-function-list-like-matlab)\n  - [1.7. `Python` Built-in function list](#17-python-built-in-function-list)\n\n\u003c!-- /code_chunk_output --\u003e\n\n## 1.1. Instruction\n\n**write c# script like python**\n\n!!! tip 思路\n    我们主要是想在 `C#` 实现 **`Python` 的内置函数**，并**在`C#` 中可以直接使用**, 以便提高简单脚本的编写效率。\n\n    !!! tip 欢迎 ❤️\n        欢迎 任何 PR\n\n!!! tip idea\n    We aim to implement the **built-in function of python in `C#`** and **direct use in `C#`** to improve the effect.\n\n    !!! tip **Welcome** ❤️\n        welcome any pull request\n\n## 1.2. Recent Changelog\n\n- time: 2023年5月15日\n- version: 1.0.6\n- log:\n  1. change readme\n  2. add `help` function\n  3. add `dir` function\n  4. fix trim `print()` last sep\n\nmore information, see [CHANGELOG.md](https://github.com/heartacker/CScripting/blob/master/CHANGELOG.md)\n\n## 1.3. Demo\n\n- `Code`\n\n\u003cdiv align=center\u003e\n\u003ctable class=\"row\"\u003e\n\u003ctr\u003e\n\u003ctd class=\"col-6\"\u003e\n\n🔗 [**C#**](./CScripting.Demo.csx)\n\n```csharp\n#r \"nuget: CScripting, *\"\nusing static CScripting;\n\nvar addr = 0x12345678;\nvar addrr = hex(addr);\n\nprint(addr); // 305419896\nprint(addrr);\n\nvar val = 0x12345678;\nvar valr = bin(addr);\n\nprint(val); // 305419896\nprint(valr);\n\nvar c = new int[] { 0, 1, 2, 3, 4, 5, 6, 7 };\n\nprint(c);\nprint(c, sep:\"\\t\");\n\n```\n\n\u003c/td\u003e\n\n\u003ctd class=\"col-6\"\u003e\n\n🔗 [**Python**](./CScripting.Compare.py)\n\n```python\n#r \"nuget: CScripting, *\"\n\n\naddr = 0x12345678\naddrr = hex(addr)\n\nprint(addr) # 305419896\nprint(addrr)\n\nval = 0x12345678\nvalr = bin(addr)\n\nprint(val); # 305419896\nprint(valr)\n\nc = [0, 1, 2, 3, 4, 5, 6, 7]\n\nprint(c)\nprint(c, sep=\"\\t\")\n\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n- `Output`\n\n\u003cdiv align=center\u003e\n\u003ctable class=\"row\"\u003e\n\u003ctr\u003e\n\u003ctd class=\"col-6\"\u003e\n\n**C#**\n\n```csharp\n305419896\n0x12345678\n305419896\n0b10010001101000101011001111000\n{ 0, 1, 2, 3, 4, 5, 6, 7}\n0\t1\t2\t3\t4\t5\t6\t7\n\n```\n\n\u003c/td\u003e\n\n\u003ctd class=\"col-6\"\u003e\n\n**Python**\n\n```python\n305419896\n0x12345678\n305419896\n0b10010001101000101011001111000\n[0, 1, 2, 3, 4, 5, 6, 7]\n[0, 1, 2, 3, 4, 5, 6, 7]\n\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## 1.4. [Dotnet script and repl](https://github.com/dotnet-script/dotnet-script#repl)\n\n```shell\n~$ dotnet-script\n\u003e #r \"nuget: CScripting, *\"\n\u003e using static CScripting;\n\u003e hex(1024)\n\"0x400\"\n\u003e print(\"Hello CScripting\")\nHello CScripting\n\n```\n\n## 1.5. Extended function list\n\n- MyOwn\n  - [ ] `load()`\n  - [ ] `unload()`\n\n## 1.6. Extended function list like `Matlab`\n\n- coming\n  - [ ] `???`\n  - [ ] `????`\n\n## 1.7. `Python` Built-in function list\n\n- A\n  - [x] [`abs()`](./CScripting/Built-in/abs.cs)\n  - [ ] `aiter()`\n  - [x] [`all()`](./CScripting/Built-in/all.cs)\n  - [x] [`any()`](./CScripting/Built-in/any.cs)\n  - [ ] `anext()`\n  - [ ] `ascii()`\n\n- B\n  - [x] [`bin()`](./CScripting/Built-in/bin.cs)\n  - [ ] `bool()`\n  - [ ] `breakpoint()`\n  - [x] [`bytearray()`](./CScripting/Built-in/bytearry.cs)\n  - [x] [`bytes()`](./CScripting/Built-in/bytearry.cs)\n\n- C\n  - [ ] `callable()`\n  - [x] [`chr()`](./CScripting/Built-in/chr.cs)\n  - [ ] `classmethod()`\n  - [ ] `compile()` **\n  - [ ] `complex()` **\n\n- D\n  - [ ] `delattr()`\n  - [ ] `dict()`\n  - [ ] `dir()` *\n  - [ ] `divmod()`\n\n- E\n  - [ ] `enumerate()`\n  - [ ] `eval()`\n  - [ ] `exec()`\n\n- F\n  - [ ] `filter()`\n  - [ ] `float()`\n  - [ ] `format()`\n  - [ ] `frozenset()`\n\n- G\n  - [ ] `getattr()`\n  - [ ] `globals()`\n\n- H\n  - [ ] `hasattr()`\n  - [ ] `hash()`\n  - [x] [`help()`](./CScripting/Built-in/help.cs)\n  - [x] [`hex()`](./CScripting/Built-in/hex.cs)\n\n- I\n  - [ ] `id()`\n  - [ ] `input()`\n  - [ ] `int()`\n  - [ ] `isinstance()`\n  - [ ] `issubclass()`\n  - [ ] `iter()`\n\n- L\n  - [ ] `len()`\n  - [ ] `list()`\n  - [ ] `locals()`\n\n- M\n  - [ ] `map()`\n  - [ ] `max()`\n  - [ ] `memoryview()`\n  - [ ] `min()`\n\n- N\n  - [ ] `next()`\n\n- O\n  - [ ] `object()`\n  - [x] [`oct()`](./CScripting/Built-in/oct.cs)\n  - [ ] `open()`\n  - [x] [`ord()`](./CScripting/Built-in/ord.cs)\n\n- P\n  - [ ] `pow()`\n  - [x] [`print()`](./CScripting/Built-in/print.cs)\n  - [ ] `property()`\n\n- R\n  - [ ] `range()`\n  - [ ] `repr()`\n  - [ ] `reversed()`\n  - [ ] `round()`\n\n- S\n  - [ ] `set()`\n  - [ ] `setattr()`\n  - [ ] `slice()`\n  - [ ] `sorted()`\n  - [ ] `staticmethod()`\n  - [ ] `str()`\n  - [ ] `sum()`\n  - [ ] `super()`\n\n- T\n  - [ ] `tuple()`\n  - [ ] `type()`\n  -\n\n- V\n  - [ ]`vars()`\n\n- Z\n  - [ ] `zip()`\n\n- misc\n  - [ ] `_`\n  - [ ] `__import__()`\n  - [ ] `???`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheartacker%2Fcscripting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheartacker%2Fcscripting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheartacker%2Fcscripting/lists"}