Re: tail

2022-05-19 Thread Cameron Simpson
On 19May2022 19:50, Marco Sulla  wrote:
>On Wed, 18 May 2022 at 23:32, Cameron Simpson  wrote:
>> You're measuring different things. timeit() tries hard to measure 
>> just
>> the code snippet you provide. It doesn't measure the startup cost of the
>> whole python interpreter. Try:
>>
>> time python3 your-tail-prog.py /home/marco/lorem.txt
>
>Well, I'll try it, but it's not a bit unfair to compare Python startup with C?

Yes it is. But timeit goes the other way and only measures the code.  
Admittedly I'd expect a C tail to be pretty quick anyway. But... even a 
small C programme often has a surprising degree of startup these days, 
what with dynamicly linked libraries, locale lookups etc etc. Try:

strace tail some-empty-file.txt

and see what goes on. If you're on slow hard drives what is cached in 
memory and what isn't can have a surprising effect.

Cheers,
Cameron Simpson 
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Python & nmap

2022-05-19 Thread MRAB

On 2022-05-19 20:28, ^Bart wrote:

You forgot the second line (after 'import nmap' and before 'nm.scan()'):

 nm = nmap.PortScanner()


import nmap
nm = nmap.PortScanner()
nm.scan(hosts='192.168.205.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
for host, status in hosts_list:
   print('{0}:{1}'.host)

And the result is:

Traceback (most recent call last):
File "/home/gabriele/Documenti/Python/nmap.py", line 1, in 
  import nmap
File "/home/gabriele/Documenti/Python/nmap.py", line 2, in 
  nm = nmap.PortScanner()
AttributeError: partially initialized module 'nmap' has no attribute
'PortScanner' (most likely due to a circular import)
  >>>

I'm using the IDLE Shell 3.9.2 on Debian Bullseye+KDE, if I write the
script from command line it works!

When you installed nmap it would've been installed into site-packages, 
but the traceback says "/home/gabriele/Documenti/Python/nmap.py", which 
suggests to me that you called your script "nmap.py", so it's shadowing 
what you installed and is actually trying to import itself!

--
https://mail.python.org/mailman/listinfo/python-list


Re: Python & nmap

2022-05-19 Thread ^Bart

Opbservations worth considering
1) could possibly be handled by a simple bash script (My bash skills are
not great So i would probably still go python myself anyway)


Like what I wrote in my last reply to another user now I need to start 
this work asap so maybe I'll start to write a rough bash script and I 
hope to manage it when I'll have free time on Python!



2) Instead of checking availability just try to send & react appropriately
if it fails (Ask for forgiveness not permission), the client could fail
after test or during transfer anyway so you will still need this level of
error checking


Sadly true... I didn't think about it but maybe I could find a solution 
in bash script...


Thanks for your reply! :)
^Bart

--
https://mail.python.org/mailman/listinfo/python-list


Re: Python & nmap

2022-05-19 Thread ^Bart

You forgot the second line (after 'import nmap' and before 'nm.scan()'):

 nm = nmap.PortScanner()


import nmap
nm = nmap.PortScanner()
nm.scan(hosts='192.168.205.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
for host, status in hosts_list:
 print('{0}:{1}'.host)

And the result is:

Traceback (most recent call last):
  File "/home/gabriele/Documenti/Python/nmap.py", line 1, in 
import nmap
  File "/home/gabriele/Documenti/Python/nmap.py", line 2, in 
nm = nmap.PortScanner()
AttributeError: partially initialized module 'nmap' has no attribute 
'PortScanner' (most likely due to a circular import)

>>>

I'm using the IDLE Shell 3.9.2 on Debian Bullseye+KDE, if I write the 
script from command line it works!


^Bart
--
https://mail.python.org/mailman/listinfo/python-list


Re: Python & nmap

2022-05-19 Thread ^Bart
Maybe it could be a good idea to look at Ansible for copying the Files 
to all the hosts, because that is one thing ansible is made for.


I didn't know it... thanks to share it but... I should start to study it 
and I don't have not enought free time... but maybe in the future I'll 
do it! :)


For the nmap part: Ansible does not have a module for that (sadly) but 
is very extensible, so if you start developing something like that in 
Python, you could as well write an ansible module and combine both, 
because Ansible itself is written in Python.


Ah ok, maybe now I just start to write a bash script because I need to 
start this work asap, when I'll have one minute I'll try to move the 
script in Python and after it I could "upload" the work on Ansible! :)



Cheers

Lars


Thanks!
^Bart

--
https://mail.python.org/mailman/listinfo/python-list


[Python-announce] Vulture 2.4

2022-05-19 Thread Jendrik Seipp

Vulture - Find dead code


Vulture finds unused code in Python programs. This is useful for
cleaning up and finding errors in large code bases. If you run Vulture
on both your library and test suite you can find untested code.

Due to Python's dynamic nature, static code analyzers like Vulture are
likely to miss some dead code. Also, code that is only called
implicitly may be reported as unused. Nonetheless, Vulture can be a
very helpful tool for higher code quality.


Download

https://github.com/jendrikseipp/vulture
http://pypi.python.org/pypi/vulture


Features

* fast: uses static code analysis
* tested: tests itself and has complete test coverage
* complements pyflakes and has the same output syntax
* sorts unused classes and functions by size with ``--sort-by-size``
* supports Python 3.6+


News

* Print absolute filepaths as relative again (as in version 2.1 and before)
  if they are below the current directory (The-Compiler, #246).
* Run tests and add PyPI trove for Python 3.10 (chayim, #266).
* Allow using the `del` keyword to mark unused variables (sshishov, #279).


Cheers
Jendrik









___
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/
Member address: arch...@mail-archive.com


Re: Issue sending data from C++ to Python

2022-05-19 Thread Dieter Maurer
Pablo Martinez Ulloa wrote at 2022-5-18 15:08 +0100:
>I have been using your C++ Python API, in order to establish a bridge from
>C++ to Python.

Do you know `cython`?
It can help very much in the implementation of bridges between
Python and C/C++.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: tail

2022-05-19 Thread Marco Sulla
On Wed, 18 May 2022 at 23:32, Cameron Simpson  wrote:
>
> On 17May2022 22:45, Marco Sulla  wrote:
> >Well, I've done a benchmark.
>  timeit.timeit("tail('/home/marco/small.txt')", globals={"tail":tail}, 
>  number=10)
> >1.5963431186974049
>  timeit.timeit("tail('/home/marco/lorem.txt')", globals={"tail":tail}, 
>  number=10)
> >2.5240604374557734
>  timeit.timeit("tail('/home/marco/lorem.txt', chunk_size=1000)", 
>  globals={"tail":tail}, number=10)
> >1.8944984432309866
>
> This suggests that the file size does not dominate uour runtime.

Yes, this is what I wanted to test and it seems good.

> Ah.
> _Or_ that there are similar numbers of newlines vs text in the files so
> reading similar amounts of data from the end. If the "line desnity" of
> the files were similar you would hope that the runtimes would be
> similar.

No, well, small.txt has very short lines. Lorem.txt is a lorem ipsum,
so really long lines. Indeed I get better results tuning chunk_size.
Anyway, also with the default value the performance is not bad at all.

> >But the time of Linux tail surprise me:
> >
> >marco@buzz:~$ time tail lorem.txt
> >[text]
> >
> >real0m0.004s
> >user0m0.003s
> >sys0m0.001s
> >
> >It's strange that it's so slow. I thought it was because it decodes
> >and print the result, but I timed
>
> You're measuring different things. timeit() tries hard to measure just
> the code snippet you provide. It doesn't measure the startup cost of the
> whole python interpreter. Try:
>
> time python3 your-tail-prog.py /home/marco/lorem.txt

Well, I'll try it, but it's not a bit unfair to compare Python startup with C?
> BTW, does your `tail()` print output? If not, again not measuring the
> same thing.
> [...]
> Also: does tail(1) do character set / encoding stuff? Does your Python
> code do that? Might be apples and oranges.

Well, as I wrote I also timed

timeit.timeit("print(tail('/home/marco/lorem.txt').decode('utf-8'))",
globals={"tail":tail}, number=10)

and I got ~36 seconds.

> If you have the source of tail(1) to hand, consider getting to the core
> and measuring `time()` immediately before and immediately after the
> central tail operation and printing the result.

IMHO this is a very good idea, but I have to find the time(). Ahah. Emh.
-- 
https://mail.python.org/mailman/listinfo/python-list


Invoice

2022-05-19 Thread Poppy Thomas
[image: Invoice.jpg]
..
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Python & nmap

2022-05-19 Thread Lars Liedtke

# scp "my_file" root@192.168.205.x/my_directory


Maybe it could be a good idea to look at Ansible for copying the Files 
to all the hosts, because that is one thing ansible is made for.


For the nmap part: Ansible does not have a module for that (sadly) but 
is very extensible, so if you start developing something like that in 
Python, you could as well write an ansible module and combine both, 
because Ansible itself is written in Python.


Cheers

Lars


--
Lars Liedtke
Software Entwickler


Phone:  
Fax:+49 721 98993-
E-mail: l...@solute.de


solute GmbH
Zeppelinstraße 15   
76185 Karlsruhe
Germany


Marken der solute GmbH | brands of solute GmbH
billiger.de | Shopping.de 



Geschäftsführer | Managing Director: Dr. Thilo Gans, Bernd Vermaaten
Webseite | www.solute.de
Sitz | Registered Office: Karlsruhe
Registergericht | Register Court: Amtsgericht Mannheim
Registernummer | Register No.: HRB 110579
USt-ID | VAT ID: DE234663798


Informationen zum Datenschutz | Information about privacy policy
http://solute.de/ger/datenschutz/grundsaetze-der-datenverarbeitung.php


--
https://mail.python.org/mailman/listinfo/python-list


Re: Python & nmap

2022-05-19 Thread alister via Python-list
On Wed, 18 May 2022 23:52:05 +0200, ^Bart wrote:

> Hi guys,
> 
> i need to copy some files from a Debian client to all linux embedded
> clients.
> 
> I know the linux commands like:
> 
> # scp "my_file" root@192.168.205.x/my_directory
> 
> But... I have to upload 100 devices, I have a lan and a dhcp server just
> for this work and I'd like to make a script by Python which can:
> 
> 1) To scan the lan 2) To find which ips are "ready"
> 3) To send files to all of the "ready" clients 4) After I see on the
> display of these clients the successfully update I remove from the lan
> them and I put them to the box to send them to our customers.
> 
> I found https://pypi.org/project/python-nmap/ and I followed the line
> "To check the network status" but... it doesn't work.
> 
> THE INPUT
> 
-
> import nmap nm.scan(hosts='192.168.205.0/24', arguments='-n -sP -PE
> -PA21,23,80,3389')
> hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
> for host, status in hosts_list:
>   print('{0}:{1}'.host)
> 
> THE OUTPUT
> -
> Traceback (most recent call last):
>File "/home/gabriele/Documenti/Python/nmap.py", line 1, in 
>  import nmap
>File "/home/gabriele/Documenti/Python/nmap.py", line 2, in 
>  nm.scan(hosts='192.168.205.0/24', arguments='-n -sP -PE
> -PA21,23,80,3389')
> NameError: name 'nm' is not defined
> 
> Regards.
> ^Bart


Opbservations worth considering
1) could possibly be handled by a simple bash script (My bash skills are 
not great So i would probably still go python myself anyway)
2) Instead of checking availability just try to send & react appropriately 
if it fails (Ask for forgiveness not permission), the client could fail 
after test or during transfer anyway so you will still need this level of 
error checking



-- 
QOTD:
"What women and psychologists call `dropping your armor', we call
"baring your neck."
-- 
https://mail.python.org/mailman/listinfo/python-list