Never try to hide your weaknesses just to keep someone on you. That is the completely wrong way to do it.
The first is because, you have them around, but you are no longer yourself. You are wearing a mask. So are you really living?
The second is because, the way you do it looks like you are cheating on them. Half the truth is not the truth. Is a relationship built on dishonesty lasting?
Third, because, if they are with you just for your good qualities, are they worthy? Nobody is perfect. Everyone has to compromise and balance with the other’s bad points if they really value your relationship.
So just show your weaknesses like who you always have been. And to see who is sincere to you, who is patient enough to love you forever.