opened
steelman
username_0
Support synchronous spinners which switch frames upon explicit request from a working thread like.

```python
with Halo(spinner='dots') as spinner:
  for f in files_to_load():
    spinner.next(text="Loading %s" %f) # or .step(), or .tick(), or…
    do_load_file(f)
```
This can (as far as I understand) be achieved with .frame() but isn't as concise as the above.
Synchronous spinner
issue
created
JungWinter
username_1
How about this way? I think it can do what you want.
```python
with Halo(spinner='dots') as spinner:
   for f in files_to_load():
        spinner.text = 'Loading {}'.format(f)
        do_load_file(f)
```
comment
created
steelman
username_0
This isn't a bad solution, however, it doesn't work if there is nothing like a filename to show and I still want the spinner to be updated once a loop.
comment
created
ManrajGrover
username_2
@username_0 Thanks for opening this. Could you add an example to your second comment?
comment
created
ManrajGrover
username_2
@username_0 I'm getting what you're saying. See, this is what `spinner.text` is for. If we need to step in every iteration, let's say for percentage, we would need to know the length of the iterable. For that, we need to add a wrapper which handles iterations and updates the text. But we can only do it for iterables.
comment
created
steelman
username_0
At this moment halo satisfies my needs so, most probably, I won't develop any solution to the problem I described. However, I imagine, you may want to keep this issue open, so if anybody comes looking for an inspiration for a contribution, they will find one.
comment
created
foster999
username_3
Happy to update #132 and check it still works, if the feature might still be of interest @manrajgrover?
comment