IndianOpenSourceFoundation / dynamic-cli

A Modern, user-friendly command-line HTTP client for the API testing, and if you're stuck - Search and browse StackOverflow without leaving the CLI
https://pypi.org/project/dynamic-cli/
GNU General Public License v3.0
169 stars 120 forks source link

Dynamic CLI support for windows OS #94

Open guptaaastha opened 3 years ago

guptaaastha commented 3 years ago

Currently Dynamic CLI has a dependency on the termios module. This module does not support windows OS (refer the links provided below for reference). This issue is to point attention towards this drawback and open up a conversation whether this is something that can be addressed.

Please refer: https://docs.python.org/3/library/tty.html https://docs.python.org/3/library/termios.html#module-termios

github-actions[bot] commented 3 years ago

Hi👋 thanks for creating your first issue for IOSF, Will get back to you soon !.

NamamiShanker commented 3 years ago

This dependency has been caused because of the simple-term-menu module. We need this module for StackExchange results to be printed the way they are. Please refer to PR #89. Windows users can use WSL for using Dynamic-CLI.

guptaaastha commented 3 years ago

One can surely use WSL but that would make Dynamic CLI restrictive and available only for users who are on Unix OS. I think we should try to be more inclusive and find alternatives that support all users regardless of their OS 😄

lainq commented 3 years ago

Yes @guptaaastha, the cli is not supporting windows right now due to the termios package used in the application. The module is not yet implemented for windows. We are searching for a way to solve this issue. All contributions are appreciated.

NamamiShanker commented 3 years ago

We can use curses but that can reduce UI/UX capabilities.

lainq commented 3 years ago

We can use curses but that can reduce UI/UX capabilities.

Hmm yeah

lainq commented 3 years ago

Right now, I am planning to use an online linux environment like repl.it or CS50 IDE.

guptaaastha commented 3 years ago

Right now, I am planning to use an online linux environment like repl.it or CS50 IDE.

That's one way to go yes, I think we should still be on the look for a more inclusive module 🚀

GouravSardana commented 3 years ago

I think we can do specific change only for windows env. So that other would not face UX issues.

GouravSardana commented 3 years ago

Or else we need to find out some other way to support all the environment equally and efficiently.

lainq commented 3 years ago

Or else we need to find out some other way to support all the environment equally and efficiently.

I think this is what we have to do

GouravSardana commented 3 years ago

I'll do a research and find any alternative. You guy's can also search, If you find anything do let me know here.

GouravSardana commented 3 years ago

This is quite useful. You guys can also take a look. 2-3 people gave suggestions regarding the same problem that we are facing - https://github.com/bchao1/bullet/issues/2

lainq commented 3 years ago

This is quite useful. You guys can also take a look. 2-3 people gave suggestions regarding the same problem that we are facing - bchao1/bullet#2

But, they don't have a solution for that 🙁

GouravSardana commented 3 years ago

They have but that was specific to windows only. Still searching for some other alternative

guptaaastha commented 3 years ago

Let's be on the lookout for solutions

lainq commented 3 years ago

https://github.com/IndianOpenSourceFoundation/dynamic-cli/discussions/97

GouravSardana commented 3 years ago

@pranavbaburaj i think you wrote wrong. It's not support for windows and by mistake you wrote it only supports for windows

guptaaastha commented 3 years ago

@pranavbaburaj i think you wrote wrong. It's not support for windows and by mistake you wrote it only supports for windows

I just noticed this too, @pranavbaburaj please correct it.

lainq commented 3 years ago

I have updated it, Thank you 🙂

GouravSardana commented 3 years ago

We can use this as a backup option for windows- https://github.com/aegirhall/console-menu

lainq commented 3 years ago

Hmm, but we will have to rewrite it entirely or reimplement it for windows 🤔

GouravSardana commented 3 years ago

Fow now should we only integrated it when OS is windows ?

lainq commented 3 years ago

Fow now should we only integrated it when OS is windows?

Yeah, We first check if the platform is windows, then create this interface for windows

GouravSardana commented 3 years ago

@pranavbaburaj Yes, This can be done but this would be temp. We have to migrate the whole things to something else

Manas1820 commented 2 years ago

There is a workaround to make it work on window

if os.name == "nt":
  import msvcrt
else:
  import terminos

That is we can check if the current os the user is on is windows or not if we found its windows import msvcrt and replace the same functionalities which are done using terminos . @GouravSardana @pranavbaburaj this solution should work and looks like the only workaround rn.

Moreover the dependency due to which the error occurs i.e simple-term-menu this can be referred.