Coder Social home page Coder Social logo

xmpppy / xmpppy Goto Github PK

View Code? Open in Web Editor NEW
98.0 12.0 64.0 628 KB

Python 2/3 implementation of XMPP

Home Page: http://xmpppy.sourceforge.net/

License: GNU General Public License v3.0

Python 99.64% Makefile 0.36%
xmpp xmpp-library xmpp-client xmpp-client-library jabber jabber-client

xmpppy's Introduction

xmpppy

Python 2/3 implementation of XMPP (RFC3920, RFC3921).


Documentation: http://xmpppy.sf.net/

Source Code: https://github.com/xmpppy/xmpppy

Status:

image

image

image

image


About

This library has been written to be compliant with RFC3920 and RFC3921.

Installation

Using pip, you can install the package with:

pip install xmpppy --upgrade

Usage

As a library

Regularly, the module is used as a library, like:

import xmpp

jabberid = "[email protected]"
password = "secret"
receiver = "[email protected]"
message  = "hello world"

def main():
    jid = xmpp.protocol.JID(jabberid)
    connection = xmpp.Client(server=jid.getDomain(), debug=True)
    connection.connect()
    connection.auth(user=jid.getNode(), password=password, resource=jid.getResource())
    connection.send(xmpp.protocol.Message(to=receiver, body=message))

if __name__ == "__main__":
    main()

Command line interface

The package also installs a command line program called xmpp-message. Its synopsis is:

xmpp-message --debug \
    --jabberid [email protected] --password secret \
    --receiver [email protected] --message 'hello world'

You can also put your credentials into an ~/.xsend file, like:

[email protected]
PASSWORD=secret

and then invoke xmpp-message omitting the --jabberid and --password options, like:

xmpp-message --receiver [email protected] --message 'hello world'

Documentation

The canonical documentation is hosted at https://xmpppy.github.io/ and http://xmpppy.sourceforge.net/.

For learning about how to use this module, please have a look at these spots within the code base.

  • The xmpp-message program, located at xmpp/cli.py, for sending a single XMPP message.
  • The other programs within the doc/examples directory.
  • The docstrings within the library itself.

Support

If you have any questions about xmpppy usage or you have found a bug or want to share some ideas - you are welcome to join us on the issue tracker or on the xmpppy-devel mailing list.

Other projects

xmpppy's People

Contributors

amotl avatar destroy avatar gebner avatar iamsudip avatar ivucica avatar lilmike avatar malbon avatar mic92 avatar mpasternak avatar neustradamus avatar normanr avatar provonet avatar rogue73 avatar rulexec avatar snakeru avatar umonkey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xmpppy's Issues

AttributeError: module 'ssl' has no attribute 'wrap_socket'

Seems that library is not compatible with Python 3.12:

File "/ust/lib/python3.12/site-packages/xmpp/transports.py", line 387, in _startSSL
    tcpsock._sslObj    = ssl.wrap_socket(tcpsock._sock, None, None)
                         ^^^^^^^^^^^^^^^
AttributeError: module 'ssl' has no attribute 'wrap_socket'

JID has no node only a domain

So I often want to assume JID('a_process') or JID('a_process/resource') is at my local domain which gets dealt with elsewhere
However protocol.JID gives a blank node and sets the domain which is a pain.
So my ugly fix is this at the end of the init of JID

        if self.node == '':
            self.node = self.domain
            self.domain = ''
class Test_JID():
    def test_1(self):
        jid = JID('audiod/Jcop')
        assert jid.getDomain() == ''
        assert jid.getNode() == 'audiod'
        assert jid.getResource() == 'Jcop'

    def test_2(self):
        jid = JID('audiod@ics/Jcop')
        assert jid.getDomain() == 'ics'
        assert jid.getNode() == 'audiod'
        assert jid.getResource() == 'Jcop'

    def test_3(self):
        jid = JID('audiod')
        assert jid.getDomain() == ''
        assert jid.getNode() == 'audiod'
        assert jid.getResource() == ''

    def test_4(self):
        jid = JID('audiod@ics')
        assert jid.getDomain() == 'ics'
        assert jid.getNode() == 'audiod'
        assert jid.getResource() == ''

authentication failure with python3.8, but works with python2.7

I am trying to use 0.6.3 on NetBSD against ejabberd. When built with python2.7, using the provided xsend.py example script works fine. When I build with ptyhon3.8, then I get an authentication failure.

I speculate that this is some sort of bytes/strings mismatch and my username and password are being sent in some wrong bytes/UTF/? way. I see the username in the server log with a failure.

As an aside, the xsend.py example needs () around the args to print.

It would be helpful to know if anyone thinks that this works with python 3.

Execute ejabberdctl commands

Is there any way to execute ejabberdctl commands and get the results using XMPPPY library?

Example: If I want to get current offline messages for a user, I can run ejabberdctl get_offline_count user server command on server. How can I get the same using XMPPPY library?

Where can i find the docs for this API?

I am trying to use xmpppy api for connecting jabber, I have gone through xsend.py for sending messages. But where can i find the other docs or examples for registering or removing accounts form server.I have seen register and unregister functions in "features.py" file.But what parameters need to send to register a new user and etc?

Error handling is not correct (at least under Windows)

During debugging of another problem, I stumbled upon the following error:
While trying to connect, the line 165 in transports.py is failing, since the socket.error has a tuple with five elements but the current code only supports two. I do not know if the number of elements is different only between operating systems or depending on the error, but it should be able to handle all errors. Mine was:
image

  File "xxx\lib\site-packages\xmpp\transports.py", line 166, in connect
    (errno, strerror) = xxx_todo_changeme.args
ValueError: too many values to unpack (expected 2)

Brutal disconnection problem

It seems that brutally interrupting an xmpppy client doesn't close the socket. So the XMPP server is not notified that the client as gone.

XEP-0443: XMPP Compliance Suites 2021

Please add support of XEP-0443: XMPP Compliance Suites 2021: https://xmpp.org/extensions/xep-0443.html

Which replaces:

xmpp-message does not allow jid/pw to be in a file

With xsend.py, one puts JID and PASSWORD in ~/.xsend, and that allows keeping credentials separate from scripts (which might be checked in). Because of this, xmpp-message almost replaces xsend.py, but not quite.

GTalk

I didn't find the answer, is this library able to send from gtalk account to another one account ?

release does not have NEWS

Packagers and users would like to be able to know what has changed. Please add a NEWS (NEWS.md, whatever) at top-level to contain a user-facing summary of changes, similarly to how the GNU Coding Standards suggest.

The future of xmpppy

Hi there,

at #29 (comment), I've asked:

Dear @snakeru, @normanr, @clarkspark, @Neustradamus and @caronc,

thanks for the bump. When looking at slixmpp again, it looks like it is well maintained. Considering that Python 2 is essentially dead, shall we just move on and advise users of xmpppy to also switch to using either slixmpp, aioxmpp or python-nbxmpp?

I will be happy to hear about any encouragements, suggestions or objections on that topic.

With kind regards,
Andreas.

As I see this has sparked some discussion, I would like to humbly suggest to continue the discussion here within another issue in order not to pollute #29 further.

At #37 (comment), I reflected about that this code base is actually already compatible with Python 3. However it still offers a way to use it with Python 2, which might be important for people out there.

Maybe we should check download statistics on PyPI to find out more about how much it is still used these days.

Please rest assured that may question should in no way be taken in any offensive manner with respect to the conceivers and former maintainers of this library, specifically @snakeru and @normanr. I am just asking it from an open minded perspective and looking forward to a collaborative discussion and decision.

With kind regards,
Andreas.

`TypeError: can only concatenate str (not "bytes") to str` when connecting with ejabberd server

import socket
from socketfunc import *
from xmpp import *
from lxml.etree import ElementTree, Element, SubElement
import lxml.etree as etree
import pubsubclient
from io import StringIO
import string
from random import Random

user="joker@localhost"
password="joker"
server="localhost"
 
jid = JID(user) 
connection = Client(server) 
connection.connect()
result = connection.auth(jid.getNode(),password) 
connection.sendInitPresence()

I have a user joker registered on ejabberd server with the same username and password and i am trying to connect and open a session with the ejabberd server but running the above code leads to the below issue

 Traceback (most recent call last):
  File "test.py", line 79, in <module>
    result = connection.auth(jid.getNode(),password) 
  File "/home/manas/anaconda3/lib/python3.7/site-packages/xmpp/client.py", line 228, in auth
    while self.SASL.startsasl=='in-process' and self.Process(1): pass
  File "/home/manas/anaconda3/lib/python3.7/site-packages/xmpp/dispatcher.py", line 127, in Process
    raise _pendingException[0](_pendingException[1]).with_traceback(_pendingException[2])
  File "/home/manas/anaconda3/lib/python3.7/site-packages/xmpp/dispatcher.py", line 305, in dispatch
    handler['func'](session,stanza)
  File "/home/manas/anaconda3/lib/python3.7/site-packages/xmpp/auth.py", line 181, in SASLHandler
    self.DEBUG('Got challenge:'+data,'ok')
TypeError: can only concatenate str (not "bytes") to str

However i am able to connect to prosody xmpp server using the same above code but ofcourse different user credentials.

Please look into this issue

Thanks

Error at install when reading the readme

OS: Windows 7
Python: 3.7.1
xmpppy version: latest (0.6.2)

Installation errors out when trying to read the readme:

Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\Krzychu\AppData\Local\Temp\pip-install-w0qmfaz6\xmpppy_b4e34b41ffb641f68c7cf59cda30c9a2\setup.py", line 6, in <module>
        README = open(os.path.join(here, 'README.rst')).read()
      File "c:\users\krzychu\appdata\local\programs\python\python37\lib\encodings\cp1250.py", line 23, in decode
        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1087: character maps to <undefined>

The issue is the ☠ character - removing all occurences in the readme fixes the problem.

version

Hi,

It seems that your fork is more advanced and more stable than the official one. Thanks for this.

But I'd like to know why the version is lower than the official one? Official one is xmpppy-0.5.0rc1 and yours is 0.4.0.

Migration to GitHub is not complete

Dear @xmpppy team,

It will be nice to remove old parts like:

Can you add a "move" box like https://sourceforge.net/projects/handbrake for example.

To disable/delete tabs, go here: https://sourceforge.net/projects/xmpppy/
To add a new tab, go here: https://sourceforge.net/projects/xmpppy/
To change informations, go here: https://sourceforge.net/p/xmpppy/admin/overview
To export, go here: https://sourceforge.net/p/xmpppy/admin/export

The new place can be added in:

Clean the old website and redirect to new place too?

Thanks in advance.

Extra <command /> created by .buildReply() in Iq breaks old code

Old code that responds to XEP-0050 commands does not expect an existing root reply node (ordinarily a <query />, here a <command />) to exist within the generated <iq />. Old code, including the commandsbot.py example, performs an .addChild().

It should be documented somewhere what is the expected way to update the root <command /> tag generated by .buildReply().

I'm currently doing this:

replypayload = . . . . . . . .

reply = request.buildReply('result')
reply.delChild(reply.getQuery())
reply.addChild(name='command',
               namespace=xmpp.protocol.NS_COMMANDS,
               attrs={
                       'node':request.getTagAttr('command','node'),
                       'sessionid':sessionid,
                       'status':'completed'},
               payload=replypayload)

Note the delChild().

This probably isn't the best way to go about it, and requires patching existing code. I can't figure out a clean way to easily patch xmpppy without breaking half the codebase, so hopefully someone more "at home" with the codebase can patch this, document that .delChild() is necessary, or provide another solution.

auth.py type error setTagData('digest')

Line 58 has a type error as sha1 needs a bytes so have wrapped in an encode('utf-8') to fix

query.setTagData('digest',sha1((owner.Dispatcher.Stream._document_attrs['id']+self.password).encode('utf-8')).hexdigest())

too much request when TLS activated disconnects

I notice for a long time (but now I have a tracker to post this hehe):

If I activate TLS in ejabberd and if stanza I/O are "too fast" (I can't isolate clearly the value of "too fast"), xmpppy is disconnected without any more informations.

Disabling the TLS support make this problem go away.

Unicode-objects must be encoded before hashing

Your current head 8eb1092 is fine but the 0.7.0 version on PyPi does not work for me on an Ubuntu machine:

return super().auth(username, password, resource) File "/home/asl/xmpppy/xmpp/client.py", line 223, in auth if xmpp.auth.NonSASL(user,password,resource).PlugIn(self): File "/home/asl/xmpppy/xmpp/client.py", line 73, in PlugIn if 'plugin' in self.__class__.__dict__: return self.plugin(owner) File "/home/asl/xmpppy/xmpp/auth.py", line 71, in plugin query.setTagData('digest',sha1(owner.Dispatcher.Stream._document_attrs['id']+self.password).hexdigest()) TypeError: Unicode-objects must be encoded before hashing
Could you possible just publish your latest package to PyPi please?
Thanks

SCRAM-SHA-1-(PLUS) + SCRAM-SHA-256(-PLUS) + SCRAM-SHA-512(-PLUS) supports

After the unsecure and obsolete DIGEST-MD5, can you add supports of :

  • SCRAM-SHA-1
  • SCRAM-SHA-1-PLUS
  • SCRAM-SHA-224
  • SCRAM-SHA-224-PLUS
  • SCRAM-SHA-256
  • SCRAM-SHA-256-PLUS
  • SCRAM-SHA-384
  • SCRAM-SHA-384-PLUS
  • SCRAM-SHA-512
  • SCRAM-SHA-512-PLUS
  • SCRAM-SHA3-512
  • SCRAM-SHA3-512-PLUS

"When using the SASL SCRAM mechanism, the SCRAM-SHA-256-PLUS variant SHOULD be preferred over the SCRAM-SHA-256 variant, and SHA-256 variants [RFC7677] SHOULD be preferred over SHA-1 variants [RFC5802]".

https://xmpp.org/extensions/inbox/hash-recommendations.html

-PLUS variants:

LDAP:

  • RFC5803: Lightweight Directory Access Protocol (LDAP) Schema for Storing Salted: Challenge Response Authentication Mechanism (SCRAM) Secrets: https://tools.ietf.org/html/rfc5803

HTTP:

2FA:

IANA:

Linked to:

ID Collision

Hi,

I use xmpppy in a decentralized xmpp bot network. I notice that sometimes, I received duplicate ID. for example:

<presence to="user-A@host1/res1"  from="user-B@@host1/res2" id="287">
    <show>xa</show>
    <status>Off</status>
</presence>

<presence  to="user-A@host1/res1"  from="user-C@host1/res3" id="287">
    <show></show>
    <status>Running</status>
</presence>

So here the ID is the same. The problem is that sometimes, planets alignment makes this triggering callback for wrong events.

If I do:

pres = xmpp.Presence(status=presence_status, show=presence_show)
self.xmppclient.SendAndCallForResponse(stanza=pres, func=presence_callback)

Sometimes, my presence_callback is called with a wrong answer, and things can became completely screwed up.

I think a way to fix this is to modify the xmpppy.Dispatcher.send() function and change the way xmpppy manage IDs.
There are two options:

  • Generating a UUID per xmpppy.Client and set the actual sending ID to "%s-%s" % (clientUUID, globalID+1)
  • Simply use a generated UUID for each stanza with no specific ID set.

I think option 1 is the more optimized.

What do you think?

Help requested - Another Memory leak

I spotted another potential memory leak here:

dispatcher.py:

    def SendAndCallForResponse(self, stanza, func, args={}):
        """ Put stanza on the wire and call back when recipient replies.
            Additional callback arguments can be specified in args. """
        self._expected[self.send(stanza)]=(func,args)

Actually and contrary to SendAndWaitForResponse, the self._expected dict remains wired to all stanza/cb receveid as you ca see here:

graph dot

We clearly see that self._expected contains all ID and what ever they are linked too.

I try to figure out how to fix this, I'm asking for help about that.

Thanks

Provide an explicit and configurable way to enable/disable certificate checking

We need some way to enable/disable certificate checking. Currently the library uses the top-level wrap_socket function, which got removed in Python 3.12; that one never did certificate validation. However, using default context's wrap_socket always did certificate validation (since Python 2.7.x for some x < 20 IIRC).

Support for Python3

Just to let y'all know, I'm forking to work on python3 support, and will send a pull request when done.

Local Sending Problem.

not possible use libary for local xmpp send ?

i got error when try.
xmpp.protocol.HostUnknown: ('host-unknown', 'This server does not serve 127.0.0.1')
code use like this.

        connection = xmpp.Client(server='127.0.0.1')
        connection.connect()
        connection.auth(user='', password='', resource='')
        connection.send(xmpp.protocol.Message(to=to_user, body=to_message, typ='chat'))

OS : Ubuntu 20.04
Python : 3.8
xmpppy==0.6.4

BOSH support

Dear @snakeru, @normanr and @Neustradamus,

in order to add more meat to #39, I just checked the SleekXMPP and Slixmpp libraries for support of BOSH (XEP-0124, XEP-0206).

As I am not involved into the nitty gritty details of the XMPP specification in any way, I humbly asking you whether BOSH is still a thing these days? I can well see that xmpppy has some support for that which might have been slightly improved through #23.

On the other hand, there are absolute no references to "bosh", "124" or "206 when searching through the Slixmpp code base. When looking at SleekXMPP (which has already been archived by its maintainer), there is only fritzy/SleekXMPP#160 and fritzy/SleekXMPP#476, which also outline that BOSH might not be supported.

According to https://github.com/horazont/aioxmpp/issues/252 and https://github.com/horazont/aioxmpp/issues/18, aioxmpp also doesn't support neither BOSH nor Websockets. python-nbxmpp replaced BOSH with Websocket at its 1.0.0 release (18 June 2020).

Apologies for asking such questions, I have only used xmpppy for basic operations so far and would like to gain more knowledge about its featureset from you.

With kind regards,
Andreas.

New release? xmpppy SF website?

@snakeru @normanr : Would you mind tagging a new release? (The latest release is from 2011.)

Also, if this is the canonical Git repository for xmpppy, could you update the xmpppy.sf.net website to point here and remove/fix the other git/cvs repos on SourceForge? It seems that site hasn't been touched in at least 2 years.

AttributeError: 'TCPsocket' object has no attribute '_sock'

Hi,

installed xmpppy via pip3.

# python3 -m pip install xmpppy
Collecting xmpppy
  Downloading https://www.piwheels.org/simple/xmpppy/xmpppy-0.7.1-py3-none-any.whl (77kB)
    100% |████████████████████████████████| 81kB 1.3MB/s 

Put my xmpp credentials in ~/.xsend as described in the README.md

cat ~/.xsend 
[email protected]
PASSWORD=supersecurepassword123

And then try to send myself a message

# xmpp-message --receiver [email protected] --message "hello world"
Traceback (most recent call last):
  File "/usr/local/bin/xmpp-message", line 10, in <module>
    sys.exit(simple_message())
  File "/usr/local/lib/python3.7/dist-packages/xmpp/cli.py", line 74, in simple_message
    send_message(options.jabberid, options.password, options.receiver, options.message, debug=options.debug)
  File "/usr/local/lib/python3.7/dist-packages/xmpp/cli.py", line 26, in send_message
    connection.connect()
  File "/usr/local/lib/python3.7/dist-packages/xmpp/client.py", line 203, in connect
    if not CommonClient.connect(self,server,proxy,secure,use_srv,transport) or secure!=None and not secure: return self.connected
  File "/usr/local/lib/python3.7/dist-packages/xmpp/client.py", line 175, in connect
    sock.PlugOut()
  File "/usr/local/lib/python3.7/dist-packages/xmpp/client.py", line 79, in PlugOut
    if 'plugout' in self.__class__.__dict__: ret = self.plugout()
  File "/usr/local/lib/python3.7/dist-packages/xmpp/transports.py", line 178, in plugout
    self._sock.close()
AttributeError: 'TCPsocket' object has no attribute '_sock'

This happens on my Raspberry Pi4 running DietPi (Debian).

On my Linux Mint 21.1 laptop it works fine though.

Any dependency missing? Can't get it working 🤔

Thanks!

disconnection issue

Hi,

When we send bulk message, XMPP - Jabber bot get disconnected from server and goes offline. How to fix the disconnection issue or automatically reconnect the Jabber bot to server?

XEPs and RFCs support page with version

#2 Error at install when reading the readme

OS: Windows 8.1 (RU)
Python: 3.8.2
xmpppy version: latest (0.6.2)

PS C:\Users\user\PycharmProjects\test\test> pip install xmpppy
Collecting xmpppy
  Using cached xmpppy-0.6.2.tar.gz (65 kB)
    ERROR: Command errored out with exit status 1:
     command: 'c:\users\user\test\scripts\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-ughlxdiy\\xmpppy_7058d09e3db741378dd6e8812124d160\\setup.py'"'"'; __file__='"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-ughlxdiy\\x
mpppy_7058d09e3db741378dd6e8812124d160\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))'
 egg_info --egg-base 'C:\Users\user\AppData\Local\Temp\pip-pip-egg-info-hqjaxgvp'
         cwd: C:\Users\user\AppData\Local\Temp\pip-install-ughlxdiy\xmpppy_7058d09e3db741378dd6e8812124d160\
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\user\AppData\Local\Temp\pip-install-ughlxdiy\xmpppy_7058d09e3db741378dd6e8812124d160\setup.py", line 6, in <module>
        README = open(os.path.join(here, 'README.rst')).read()
      File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\encodings\cp1251.py", line 23, in decode
        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1087: character maps to <undefined>
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/80/0f/df8de530e0cbe4956c3671a4db4365c85477096d5021d93125d01ea11854/xmpppy-0.6.2.tar.gz#sha256=5c1810d129f3f5ae5a2cf56791c9efcd393a34940c8efc75ad36cca40a699709 (from https://pypi.org/simple/xmpppy/). Command errored out with exit status 1: python setup.
py egg_info Check the logs for full command output.
  Using cached xmpppy-0.6.1.tar.gz (66 kB)
    ERROR: Command errored out with exit status 1:
     command: 'c:\users\user\test\scripts\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-ughlxdiy\\xmpppy_0ad7323ff5ec4dffb6e7f5029f497ff3\\setup.py'"'"'; __file__='"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-ughlxdiy\\x
mpppy_0ad7323ff5ec4dffb6e7f5029f497ff3\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))'
 egg_info --egg-base 'C:\Users\user\AppData\Local\Temp\pip-pip-egg-info-umgfzmmn'
         cwd: C:\Users\user\AppData\Local\Temp\pip-install-ughlxdiy\xmpppy_0ad7323ff5ec4dffb6e7f5029f497ff3\
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\user\AppData\Local\Temp\pip-install-ughlxdiy\xmpppy_0ad7323ff5ec4dffb6e7f5029f497ff3\setup.py", line 6, in <module>
        README = open(os.path.join(here, 'README.rst')).read()
      File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\encodings\cp1251.py", line 23, in decode
        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1093: character maps to <undefined>
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/25/34/42f1966f5c2ec33dc201d70ae71c255d510ef32288112e1b4c801aa9c011/xmpppy-0.6.1.tar.gz#sha256=48549adb7493facd85114c5cab9312e680417281a08038378306d371d791ea31 (from https://pypi.org/simple/xmpppy/). Command errored out with exit status 1: python setup.
py egg_info Check the logs for full command output.
  Using cached xmpppy-0.6.0.tar.gz (65 kB)
    ERROR: Command errored out with exit status 1:
     command: 'c:\users\user\test\scripts\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-ughlxdiy\\xmpppy_9fb8b2f9adbb4511a43200675adfd105\\setup.py'"'"'; __file__='"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-ughlxdiy\\x
mpppy_9fb8b2f9adbb4511a43200675adfd105\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))'
 egg_info --egg-base 'C:\Users\user\AppData\Local\Temp\pip-pip-egg-info-990vw8g_'
         cwd: C:\Users\user\AppData\Local\Temp\pip-install-ughlxdiy\xmpppy_9fb8b2f9adbb4511a43200675adfd105\
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\user\AppData\Local\Temp\pip-install-ughlxdiy\xmpppy_9fb8b2f9adbb4511a43200675adfd105\setup.py", line 6, in <module>
        README = open(os.path.join(here, 'README.rst')).read()
      File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\encodings\cp1251.py", line 23, in decode
        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 947: character maps to <undefined>
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/26/8a/2bf78d0246dae80497bfc9a22dcea9423e6e7c02ce5ea117612840e19704/xmpppy-0.6.0.tar.gz#sha256=4c01a306aecbc55d4c94f3157bad5ed3d14c1e69d7ee66754589cde7f69649c6 (from https://pypi.org/simple/xmpppy/). Command errored out with exit status 1: python setup.
py egg_info Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement xmpppy (from versions: 0.5.0rc1, 0.6.0, 0.6.1, 0.6.2)
ERROR: No matching distribution found for xmpppy
PS C:\Users\user\PycharmProjects\test\test>

I confirm problem inside README.rst

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.