posy 0.0.1

[wip] Python installer and package manager
[
                # Test the equality operation
                ["2.1", "==2"],
                ["2.1", "==2.0"],
                ["2.1", "==2.0.0"],
                ["2.0", "==2.0+deadbeef"],
                # Test the equality operation with a prefix
                ["2.0", "==3.*"],
                ["2.1", "==2.0.*"],
                # Test the in-equality operation
                ["2.0", "!=2"],
                ["2.0", "!=2.0"],
                ["2.0", "!=2.0.0"],
                ["2.0+deadbeef", "!=2"],
                ["2.0+deadbeef", "!=2.0"],
                ["2.0+deadbeef", "!=2.0.0"],
                ["2.0+deadbeef", "!=2+deadbeef"],
                ["2.0+deadbeef", "!=2.0+deadbeef"],
                ["2.0+deadbeef", "!=2.0.0+deadbeef"],
                ["2.0+deadbeef.0", "!=2.0.0+deadbeef.00"],
                # Test the in-equality operation with a prefix
                ["2.dev1", "!=2.*"],
                ["2a1", "!=2.*"],
                ["2a1.post1", "!=2.*"],
                ["2b1", "!=2.*"],
                ["2b1.dev1", "!=2.*"],
                ["2c1", "!=2.*"],
                ["2c1.post1.dev1", "!=2.*"],
                ["2rc1", "!=2.*"],
                ["2", "!=2.*"],
                ["2.0", "!=2.*"],
                ["2.0.0", "!=2.*"],
                ["2.0.post1", "!=2.0.post1.*"],
                ["2.0.post1.dev1", "!=2.0.post1.*"],
                # Test the greater than equal operation
                ["2.0.dev1", ">=2"],
                ["2.0a1", ">=2"],
                ["2.0a1.dev1", ">=2"],
                ["2.0b1", ">=2"],
                ["2.0b1.post1", ">=2"],
                ["2.0c1", ">=2"],
                ["2.0c1.post1.dev1", ">=2"],
                ["2.0rc1", ">=2"],
                ["1", ">=2"],
                # Test the less than equal operation
                ["2.0.post1", "<=2"],
                ["2.0.post1.dev1", "<=2"],
                ["3", "<=2"],
                # Test the greater than operation
                ["1", ">2"],
                ["2.0.dev1", ">2"],
                ["2.0a1", ">2"],
                ["2.0a1.post1", ">2"],
                ["2.0b1", ">2"],
                ["2.0b1.dev1", ">2"],
                ["2.0c1", ">2"],
                ["2.0c1.post1.dev1", ">2"],
                ["2.0rc1", ">2"],
                ["2.0", ">2"],
                ["2.0.post1", ">2"],
                ["2.0.post1.dev1", ">2"],
                ["2.0+local.version", ">2"],
                # Test the less than operation
                ["2.0.dev1", "<2"],
                ["2.0a1", "<2"],
                ["2.0a1.post1", "<2"],
                ["2.0b1", "<2"],
                ["2.0b2.dev1", "<2"],
                ["2.0c1", "<2"],
                ["2.0c1.post1.dev1", "<2"],
                ["2.0rc1", "<2"],
                ["2.0", "<2"],
                ["2.post1", "<2"],
                ["2.post1.dev1", "<2"],
                ["3", "<2"],
                # Test the compatibility operation
                ["2.0", "~=1.0"],
                ["1.1.0", "~=1.0.0"],
                ["1.1.post1", "~=1.0.0"],
                # Test that epochs are handled sanely
                ["1.0", "~=2!1.0"],
                ["2!1.0", "~=1.0"],
                ["2!1.0", "==1.0"],
                ["1.0", "==2!1.0"],
                ["2!1.0", "==1.*"],
                ["1.0", "==2!1.*"],
                ["2!1.0", "!=2!1.0"]
            ]