Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors when trying to run on Windows #1

Closed
XAMPPRocky opened this issue Nov 19, 2021 · 3 comments
Closed

Errors when trying to run on Windows #1

XAMPPRocky opened this issue Nov 19, 2021 · 3 comments

Comments

@XAMPPRocky
Copy link

Currently when trying to run on any directory on Windows gives the following error.

Traceback (most recent call last):
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\AppData\Local\Programs\Python\Python310\Scripts\tokei-pie.exe\__main__.py", line 7, in <module>
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\tokei_pie\main.py", line 227, in main
    sectors = read_root(data)
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\tokei_pie\main.py", line 197, in read_root
    sectors.extend(read_reports(reports, key))
  File "C:\Users\erin.power\AppData\Local\Programs\Python\Python310\lib\site-packages\tokei_pie\main.py", line 176, in read_reports
    sectors = convert2sectors(tree, dict_reports, parent_id)
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\tokei_pie\main.py", line 168, in convert2sectors
    dir2sector(".", dirs, reports, sectors, language)
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\tokei_pie\main.py", line 112, in dir2sector
    subdirs = dirs[dirname]
KeyError: '.'
@laixintao
Copy link
Owner

hi @XAMPPRocky I don't have windows, let me try to find a Vm to test.

the . seems that, on linux, tokei's output starts with . but on windows it does not.

tokei git:(master) ✗ ➜ tokei -o json | jq | head -n 40
{
  "BASH": {
    "blanks": 8,
    "children": {},
    "code": 30,
    "comments": 10,
    "inaccurate": false,
    "reports": [
      {
        "name": "./ci/set_rust_version.bash",
        "stats": {
          "blanks": 0,
          "blobs": {},
          "code": 3,
          "comments": 1
        }
      },
      {
        "name": "./ci/common.bash",
        "stats": {
          "blanks": 0,
          "blobs": {},
          "code": 6,
          "comments": 0
        }
      },

@XAMPPRocky
Copy link
Author

FWIW here' the output of tokei on itself in Windows.

{"BASH":{"blanks":8,"children":{},"code":30,"comments":10,"inaccurate":false,"reports":[{"name":".\\ci\\set_rust_version.bash","stats":{"blanks":0,"blobs":{},"code":3,"comments":1}},{"name":".\\ci\\test.bash","stats":{"blanks":4,"blobs":{},"code":8,"comments":4}},{"name":".\\ci\\common.bash","stats":{"blanks":0,"blobs":{},"code":6,"comments":0}},{"name":".\\ci\\build.bash","stats":{"blanks":4,"blobs":{},"code":13,"comments":5}}]},"HTML":{"blanks":2,"children":{"JavaScript":[{"name":".\\tests\\embedding\\file_triggeringprincipal_frame_1.html","stats":{"blanks":0,"blobs":{},"code":11,"comments":4}}]},"code":9,"comments":1,"inaccurate":false,"reports":[{"name":".\\tests\\embedding\\file_triggeringprincipal_frame_1.html","stats":{"blanks":2,"blobs":{"JavaScript":{"blanks":0,"blobs":{},"code":11,"comments":4}},"code":9,"comments":1}}]},"JSON":{"blanks":0,"children":{},"code":1479,"comments":0,"inaccurate":false,"reports":[{"name":".\\languages.json","stats":{"blanks":0,"blobs":{},"code":1479,"comments":0}}]},"Markdown":{"blanks":311,"children":{"Json":[{"name":".\\CONTRIBUTING.md","stats":{"blanks":0,"blobs":{},"code":41,"comments":0}}],"Rust":[{"name":".\\CONTRIBUTING.md","stats":{"blanks":4,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":1}},"code":38,"comments":4}}],"Sh":[{"name":".\\README.md","stats":{"blanks":3,"blobs":{},"code":16,"comments":0}}]},"code":0,"comments":1145,"inaccurate":false,"reports":[{"name":".\\fuzz\\README.md","stats":{"blanks":10,"blobs":{},"code":0,"comments":20}},{"name":".\\CODE_OF_CONDUCT.md","stats":{"blanks":18,"blobs":{},"code":0,"comments":28}},{"name":".\\README.md","stats":{"blanks":82,"blobs":{"Sh":{"blanks":3,"blobs":{},"code":16,"comments":0}},"code":0,"comments":453}},{"name":".\\CONTRIBUTING.md","stats":{"blanks":44,"blobs":{"Json":{"blanks":0,"blobs":{},"code":41,"comments":0},"Rust":{"blanks":4,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":1}},"code":38,"comments":4}},"code":0,"comments":79}},{"name":".\\CHANGELOG.md","stats":{"blanks":157,"blobs":{},"code":0,"comments":565}}]},"Rust":{"blanks":548,"children":{"Markdown":[{"name":".\\src\\utils\\ext.rs","stats":{"blanks":0,"blobs":{},"code":0,"comments":1}},{"name":".\\src\\stats.rs","stats":{"blanks":1,"blobs":{},"code":0,"comments":14}},{"name":".\\src\\sort.rs","stats":{"blanks":0,"blobs":{},"code":0,"comments":6}},{"name":".\\src\\input.rs","stats":{"blanks":1,"blobs":{},"code":0,"comments":2}},{"name":".\\src\\language\\language_type.rs","stats":{"blanks":0,"blobs":{},"code":0,"comments":4}},{"name":".\\src\\language\\syntax.rs","stats":{"blanks":2,"blobs":{},"code":0,"comments":34}},{"name":".\\src\\language\\embedding.rs","stats":{"blanks":0,"blobs":{},"code":0,"comments":10}},{"name":".\\src\\lib.rs","stats":{"blanks":8,"blobs":{},"code":0,"comments":26}},{"name":".\\src\\config.rs","stats":{"blanks":5,"blobs":{"Toml":{"blanks":0,"blobs":{},"code":3,"comments":0}},"code":0,"comments":49}},{"name":".\\src\\language\\mod.rs","stats":{"blanks":14,"blobs":{},"code":0,"comments":50}},{"name":".\\src\\language\\languages.rs","stats":{"blanks":5,"blobs":{"Rust":{"blanks":0,"blobs":{},"code":2,"comments":0}},"code":0,"comments":21}},{"name":".\\src\\cli.rs","stats":{"blanks":1,"blobs":{},"code":0,"comments":12}},{"name":".\\src\\language\\language_type.tera.rs","stats":{"blanks":14,"blobs":{},"code":0,"comments":89}}]},"code":3460,"comments":126,"inaccurate":false,"reports":[{"name":".\\tests\\accuracy.rs","stats":{"blanks":12,"blobs":{},"code":47,"comments":29}},{"name":".\\src\\utils\\mod.rs","stats":{"blanks":0,"blobs":{},"code":4,"comments":0}},{"name":".\\src\\utils\\macros.rs","stats":{"blanks":9,"blobs":{},"code":93,"comments":0}},{"name":".\\src\\utils\\ext.rs","stats":{"blanks":27,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":1}},"code":117,"comments":0}},{"name":".\\src\\utils\\fs.rs","stats":{"blanks":107,"blobs":{},"code":377,"comments":2}},{"name":".\\src\\stats.rs","stats":{"blanks":18,"blobs":{"Markdown":{"blanks":1,"blobs":{},"code":0,"comments":14}},"code":95,"comments":1}},{"name":".\\src\\sort.rs","stats":{"blanks":7,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":6}},"code":43,"comments":0}},{"name":".\\src\\main.rs","stats":{"blanks":23,"blobs":{},"code":97,"comments":0}},{"name":".\\src\\input.rs","stats":{"blanks":27,"blobs":{"Markdown":{"blanks":1,"blobs":{},"code":0,"comments":2}},"code":163,"comments":5}},{"name":".\\src\\language\\language_type.rs","stats":{"blanks":35,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":4}},"code":226,"comments":13}},{"name":".\\src\\language\\syntax.rs","stats":{"blanks":54,"blobs":{"Markdown":{"blanks":2,"blobs":{},"code":0,"comments":34}},"code":556,"comments":2}},{"name":".\\src\\language\\embedding.rs","stats":{"blanks":23,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":10}},"code":164,"comments":0}},{"name":".\\fuzz\\fuzz_targets\\parse_from_slice_total.rs","stats":{"blanks":2,"blobs":{},"code":7,"comments":0}},{"name":".\\src\\cli_utils.rs","stats":{"blanks":50,"blobs":{},"code":427,"comments":7}},{"name":".\\src\\lib.rs","stats":{"blanks":4,"blobs":{"Markdown":{"blanks":8,"blobs":{},"code":0,"comments":26}},"code":24,"comments":0}},{"name":".\\fuzz\\fuzz_targets\\parse_from_slice_panic.rs","stats":{"blanks":2,"blobs":{},"code":7,"comments":0}},{"name":".\\src\\config.rs","stats":{"blanks":8,"blobs":{"Markdown":{"blanks":5,"blobs":{"Toml":{"blanks":0,"blobs":{},"code":3,"comments":0}},"code":0,"comments":49}},"code":65,"comments":53}},{"name":".\\src\\language\\mod.rs","stats":{"blanks":19,"blobs":{"Markdown":{"blanks":14,"blobs":{},"code":0,"comments":50}},"code":94,"comments":0}},{"name":".\\fuzz\\fuzz_targets\\parse_from_slice.rs","stats":{"blanks":6,"blobs":{},"code":39,"comments":6}},{"name":".\\src\\language\\languages.rs","stats":{"blanks":21,"blobs":{"Markdown":{"blanks":5,"blobs":{"Rust":{"blanks":0,"blobs":{},"code":2,"comments":0}},"code":0,"comments":21}},"code":114,"comments":0}},{"name":".\\src\\cli.rs","stats":{"blanks":30,"blobs":{"Markdown":{"blanks":1,"blobs":{},"code":0,"comments":12}},"code":275,"comments":7}},{"name":".\\src\\language\\language_type.tera.rs","stats":{"blanks":36,"blobs":{"Markdown":{"blanks":14,"blobs":{},"code":0,"comments":89}},"code":291,"comments":0}},{"name":".\\build.rs","stats":{"blanks":28,"blobs":{},"code":135,"comments":1}}]},"Shell":{"blanks":10,"children":{},"code":38,"comments":1,"inaccurate":false,"reports":[{"name":".\\benchmark.sh","stats":{"blanks":10,"blobs":{},"code":38,"comments":1}}]},"TOML":{"blanks":16,"children":{},"code":100,"comments":5,"inaccurate":false,"reports":[{"name":".\\tokei.example.toml","stats":{"blanks":0,"blobs":{},"code":4,"comments":4}},{"name":".\\fuzz\\Cargo.toml","stats":{"blanks":7,"blobs":{},"code":25,"comments":1}},{"name":".\\Cargo.toml","stats":{"blanks":9,"blobs":{},"code":71,"comments":0}}]},"Total":{"blanks":895,"children":{"Bash":[{"name":".\\ci\\set_rust_version.bash","stats":{"blanks":0,"blobs":{},"code":3,"comments":1}},{"name":".\\ci\\test.bash","stats":{"blanks":4,"blobs":{},"code":8,"comments":4}},{"name":".\\ci\\common.bash","stats":{"blanks":0,"blobs":{},"code":6,"comments":0}},{"name":".\\ci\\build.bash","stats":{"blanks":4,"blobs":{},"code":13,"comments":5}}],"Html":[{"name":".\\tests\\embedding\\file_triggeringprincipal_frame_1.html","stats":{"blanks":2,"blobs":{"JavaScript":{"blanks":0,"blobs":{},"code":11,"comments":4}},"code":9,"comments":1}}],"Json":[{"name":".\\languages.json","stats":{"blanks":0,"blobs":{},"code":1479,"comments":0}}],"Markdown":[{"name":".\\fuzz\\README.md","stats":{"blanks":10,"blobs":{},"code":0,"comments":20}},{"name":".\\CODE_OF_CONDUCT.md","stats":{"blanks":18,"blobs":{},"code":0,"comments":28}},{"name":".\\README.md","stats":{"blanks":82,"blobs":{"Sh":{"blanks":3,"blobs":{},"code":16,"comments":0}},"code":0,"comments":453}},{"name":".\\CONTRIBUTING.md","stats":{"blanks":44,"blobs":{"Json":{"blanks":0,"blobs":{},"code":41,"comments":0},"Rust":{"blanks":4,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":1}},"code":38,"comments":4}},"code":0,"comments":79}},{"name":".\\CHANGELOG.md","stats":{"blanks":157,"blobs":{},"code":0,"comments":565}}],"Rust":[{"name":".\\tests\\accuracy.rs","stats":{"blanks":12,"blobs":{},"code":47,"comments":29}},{"name":".\\src\\utils\\mod.rs","stats":{"blanks":0,"blobs":{},"code":4,"comments":0}},{"name":".\\src\\utils\\macros.rs","stats":{"blanks":9,"blobs":{},"code":93,"comments":0}},{"name":".\\src\\utils\\ext.rs","stats":{"blanks":27,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":1}},"code":117,"comments":0}},{"name":".\\src\\utils\\fs.rs","stats":{"blanks":107,"blobs":{},"code":377,"comments":2}},{"name":".\\src\\stats.rs","stats":{"blanks":18,"blobs":{"Markdown":{"blanks":1,"blobs":{},"code":0,"comments":14}},"code":95,"comments":1}},{"name":".\\src\\sort.rs","stats":{"blanks":7,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":6}},"code":43,"comments":0}},{"name":".\\src\\main.rs","stats":{"blanks":23,"blobs":{},"code":97,"comments":0}},{"name":".\\src\\input.rs","stats":{"blanks":27,"blobs":{"Markdown":{"blanks":1,"blobs":{},"code":0,"comments":2}},"code":163,"comments":5}},{"name":".\\src\\language\\language_type.rs","stats":{"blanks":35,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":4}},"code":226,"comments":13}},{"name":".\\src\\language\\syntax.rs","stats":{"blanks":54,"blobs":{"Markdown":{"blanks":2,"blobs":{},"code":0,"comments":34}},"code":556,"comments":2}},{"name":".\\src\\language\\embedding.rs","stats":{"blanks":23,"blobs":{"Markdown":{"blanks":0,"blobs":{},"code":0,"comments":10}},"code":164,"comments":0}},{"name":".\\fuzz\\fuzz_targets\\parse_from_slice_total.rs","stats":{"blanks":2,"blobs":{},"code":7,"comments":0}},{"name":".\\src\\cli_utils.rs","stats":{"blanks":50,"blobs":{},"code":427,"comments":7}},{"name":".\\src\\lib.rs","stats":{"blanks":4,"blobs":{"Markdown":{"blanks":8,"blobs":{},"code":0,"comments":26}},"code":24,"comments":0}},{"name":".\\fuzz\\fuzz_targets\\parse_from_slice_panic.rs","stats":{"blanks":2,"blobs":{},"code":7,"comments":0}},{"name":".\\src\\config.rs","stats":{"blanks":8,"blobs":{"Markdown":{"blanks":5,"blobs":{"Toml":{"blanks":0,"blobs":{},"code":3,"comments":0}},"code":0,"comments":49}},"code":65,"comments":53}},{"name":".\\src\\language\\mod.rs","stats":{"blanks":19,"blobs":{"Markdown":{"blanks":14,"blobs":{},"code":0,"comments":50}},"code":94,"comments":0}},{"name":".\\fuzz\\fuzz_targets\\parse_from_slice.rs","stats":{"blanks":6,"blobs":{},"code":39,"comments":6}},{"name":".\\src\\language\\languages.rs","stats":{"blanks":21,"blobs":{"Markdown":{"blanks":5,"blobs":{"Rust":{"blanks":0,"blobs":{},"code":2,"comments":0}},"code":0,"comments":21}},"code":114,"comments":0}},{"name":".\\src\\cli.rs","stats":{"blanks":30,"blobs":{"Markdown":{"blanks":1,"blobs":{},"code":0,"comments":12}},"code":275,"comments":7}},{"name":".\\src\\language\\language_type.tera.rs","stats":{"blanks":36,"blobs":{"Markdown":{"blanks":14,"blobs":{},"code":0,"comments":89}},"code":291,"comments":0}},{"name":".\\build.rs","stats":{"blanks":28,"blobs":{},"code":135,"comments":1}}],"Sh":[{"name":".\\benchmark.sh","stats":{"blanks":10,"blobs":{},"code":38,"comments":1}}],"Toml":[{"name":".\\tokei.example.toml","stats":{"blanks":0,"blobs":{},"code":4,"comments":4}},{"name":".\\fuzz\\Cargo.toml","stats":{"blanks":7,"blobs":{},"code":25,"comments":1}},{"name":".\\Cargo.toml","stats":{"blanks":9,"blobs":{},"code":71,"comments":0}}]},"code":5116,"comments":1288,"inaccurate":false,"reports":[]}}

laixintao added a commit that referenced this issue Nov 19, 2021
laixintao added a commit that referenced this issue Nov 19, 2021
@laixintao laixintao reopened this Nov 19, 2021
laixintao added a commit that referenced this issue Nov 19, 2021
related #1
close #3
@laixintao
Copy link
Owner

Hi @XAMPPRocky

I realize there are 2 bugs:

  1. windows use \\ in path so I should use os.sep instead of / for path splitting. this is fixed by fix: #1 #2 @yihong0618
  2. tokei output not always starts with ., e.g. tokei ../redis, or tokei /root/path/code, so I shouldn't use . as root path. fixed by bugfix: fix tokei export path not always . #4

and also, if I keep all of the paths like a/b/c/code, it will look like this:
image

note that all sectors start with ../Programs/iredis

so in #3 I removed the common prefix.

so for the same input it looks like this now:

image

can you please try again? I think it will work for windows this time(not sure though)

pip install tokei-pie==1.2.0

or just pip install -U tokei-pie

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants